본문 바로가기
728x90

배움 기록/코테 연습37

[프로그래머스] 완주하지 못한 선수 : JavaScript 📌 문제 📌 풀이function solution(participant, completion) { const hash = {}; for (const name of participant) { hash[name] = (hash[name] || 0) + 1; } for (const name of completion) { hash[name]--; } for (const name in hash) { if (hash[name] > 0) return name }} 해당 문제는 해시 알고리즘 카테고리에 있는 문제였다 (따라서 해시에 맞게 풀이함)해시 테이블 생성 : 참가자 이름을 key, 해당 이름이 이미 존재하면 1을 더하고, 없으면 1로 .. 2025. 3. 22.
[프로그래머스] 빈 배열에 추가, 삭제하기 : JavaScript 📌 문제 📌 풀이function solution(arr, flag) { let X = []; arr.forEach((num, i) => { if (flag[i]) { X = X.concat(Array(num * 2).fill(num)); } else { X.splice(-num, num); } }) return X}Array() : 새로운 Array 를 생성할 때 사용한다.Array(n)은 길이가 n인 배열을 만든다.fill() : Array.prototype.fill(n)에서 n은 배열을 채울 값이다.즉, Array(n).fill(n) 은 길이가 n인 배열을 만들고, 배열의 모든 요소를 n으로 .. 2025. 2. 17.
[프로그래머스] 왼쪽 오른쪽 : JavaScript 📌 문제 📌 풀이처음 풀이 🚫function solution(str_list) { var answer = []; str_list.forEach((item, idx) => { if (item === 'l') { answer = str_list.slice(0, idx); return } if (item === 'r') { answer = str_list.slice(idx + 1); return } }) return answer;}forEach() 를 사용해 조건에 맞는 경우에 로직을 실행하고 return 을 통해 반복문을 멈추도록 의도했다.하지만 코드 실.. 2025. 2. 2.
[프로그래머스] 2의 영역 : JavaScript 📌 문제 📌 풀이처음 풀이 🚫function solution(arr) { const indexArr = []; let result; arr.forEach((num, idx) => { if (num === 2) indexArr.push(idx); }) if (indexArr.length === 0) { result = [-1]; } if (indexArr.length === 1) { result = [arr[indexArr[0]]]; } if (indexArr.length > 1) { result = arr.slice(indexArr[0], indexArr[indexArr.length - 1] + 1);.. 2025. 1. 30.
728x90
반응형