본문 바로가기

전체 글130

[JS] 가장 가까운 같은 글자 테스트케이스 최대 소요시간 : 4.19ms 제출답안 function solution(s) { let sArr = [...s]; let answer = []; sArr.forEach((thing,index)=>{ let i; for(i = index-1 ; i > -1 ; i-- ){ if(thing == sArr[i]) { //일치하는 글자를 찾은 경우 //몇 칸 앞인지를(기준 문자 index - 확인 중인 문자 index) answer에 넣고 for문 종료 answer.push(index-i) ; break; }; } if(i < 0 ) answer.push(-1); // 일치하는 글자가 없는 채로 for문이 종료 된 경우 }) return answer; } 문제를 다 풀고 나서, 문자열 s를 배열로 .. 2024. 3. 10.
[JS] 삼총사 (프로그래머스) 테스트케이스 최대 소요시간 : 0.22ms 제출답안 function solution(number) { // 1번째 학생은 배열 앞부분부터 배열의 뒤에서 세번째까지 돈다.(2번째와 세번째 학생의 자리)(O O..O X X) // 2번째 학생은 1번 뒷자리부터 배열의 뒤에서 두번째까지 돈다. // 3번째 인간은 2번 뒷자리부터 배열의 맨 뒤까지 돈다. // 삼총사 조합을 찾을때마다 answer에 ++한다 var answer = 0; for(let a = 0 ; a < number.length-2 ; a++){ for(let b= a+1 ; b < number.length-1 ; b++){ let find = 0 - number[a] - number[b]; for( let c= b+1; c < number.l.. 2024. 3. 8.
[JS] 푸드 파이트 대회 테스트케이스 최대 소요시간 : 0.07ms 제출답안 function solution(food) { let front = "" ; //앞부터 let back = "" ; //뒤에서부터 for(let i = 1 ; i < food.length ; i++){ // 문자열 i 를 수량/2 의 몫만큼 반복해서 입력 let string = (i+"").repeat(Math.trunc(food[i]/2)); front += string; back = string+back; } return front+"0"+back; } 이걸 더 짧게 back을 따로 만들지 않고, [...front].reverse().join('') 식으로 쓴 것을 보았다. 함수의 세계는 무궁무진. [...front] = front문자열을 한 글자씩.. 2024. 3. 7.
[시간복잡성] indexOf(), hash변환 후 값 추출 코테를 풀다가, indexOf() 를 사용해 시간초과가 나던 부분을 전체 배열을 {배열의 값: index, ...} 형태의 hash로 변환하고 값을 추출하는 식으로 변경해서 풀게 되었다. 그렇다면 시간 차이가 얼마나 나는가. 그리고 배열의 길이가 얼마나 짧아야 indexOf()가 유리할까? 모의 배열을 하나 생성해서, 아래 두 가지의 경우를 조사해본다. 시간 소요는 window.performance.now(); 를 사용해서 구했다. 1.배열.indexOf("문자열") 출력 2. 각 위치를 hash로 전부 변환하고 특정 값의 위치 출력 ( ex. {값1 : 0 , 값2 :1, 값3: 2 ... ) 테스트할 배열은 그냥 for문으로 임의로 만들었다. 길면 길수록 뽑기가 힘들었다.. 실행은 10번 정도를 하고.. 2024. 3. 7.
[js] 달리기 경주_그런데 이제 자괴감을 곁들인 테스트케이스 최대 소요시간 : 140.70ms 죽어도 시간초과를 해결 못해서 다른 사람 답을 찾아보고 참고했다. 맨 아래엔 후기..... 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/178871 제출답안 function solution(players, callings) { // player들의 현재위치를 map으로 변환 let positions = {}; players.forEach((player, index)=> positions[player]=index ) callings.forEach((call)=>{ let callerP = positions[call]; //호명자의 원래 위치 let loser = players[callerP-1.. 2024. 3. 7.
[JS] 붕대감기 (해설포함) 테스트케이스 최대 소요시간 : 0.20ms 문제 요약 //1초에 x만큼 회복하고, t를 채우면 y가 추가됨 bandage = [시전시간 t, 초당회복력x, 추가회복량 y] health = 최대체력 attacks = [ [공격시간,피해량], [공격시간, 피해량] ...] 제출답안 function solution(bandage, health, attacks) { let nowhealth = health - attacks[0][1]; if (nowhealth health) ? health : nowhealth; nowhealth -= attacks[i][1]; if (nowhealth 2024. 3. 1.
비대면진료 앱 프로젝트 산출물 스크린샷 ** 입력된 데이터는 모두 모의데이터이며 실제와 무관합니다 ** 1. 의료진, 병원 관리자용 페이지 2. 약국 사용자 페이지 3. 사이트 관리인 페이지 4. 환자용 페이지(모바일) 2024. 2. 22.
집에서 처방받으세요, 비대면 진료 앱 2022.10.21 부터 2023.01.13까지 3개월간 진행했던 프로젝트가 끝나고, 개발자로 입사한지가 벌써 1년이 넘었네요. 사실 일정관리를 너무 잘해버린 나머지(^__^) 완성하고도 시간이 남아 마지막 1개월정도는 개인 공부 하고, 해보고 싶은 기능 추가하면서 보냈던 기억이 납니다. 다른 팀원이 작업한 부분은 줄이고 제가 맡은 부분 위주로 정리하여 포스팅합니다. 개발 환경 Windows10 개발 언어 Java17, Javascript, HTML5, CSS DB PostgreSQL 15.1 개발 라이브러리 SpringBoot2.8, Svelte3.46, SvelteKit0.0.1 개발 도구 VisualStudio Code, IntelliJ, SVN 프로젝트는 (주)비트컴퓨터 입사 예정인 동기 둘과 함.. 2024. 2. 19.
[SQL] INSERT문 자동 생성기 표를 INSERT문으로 자동 변환해주는 사이트는 은근 많지만.. 중요한 보안 DB를 출처도 모르는 사이트에 집어넣기는 불안해서 HTML을 다운로드 받아 사용할 수 있도록 만들었습니다. 파일을 메모장으로 열면 내부 로직까지도 확인할 수 있으니 원하시는대로 수정해서 사용도 가능합니다. 별다른 설치 없이, 파일을 다운받고 실행하세요. 로직이 파일 내부에 전부 있기 때문에 인터넷이 되지 않아도 사용 가능합니다. 표 데이터가 너무 많으면 딜레이가 좀 있어요 ㅠ --- 사용방법 --- 1. 첨부파일을 다운로드받고, 더블클릭하여 실행합니다. 인터넷 창(크롬, 엣지 등)으로 열리지만 네트워크 연결은 없어요! 2. (1)테이블명 입력 칸에 테이블 명을 입력합니다. 저는 SQL 결과로 표시된 데이터 표를 복사해서 그대로 .. 2024. 2. 2.
728x90