반응형
📌 문제
📌 풀이
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로 초기화한다
- 완주자 처리 : 완주자 배열의 각 이름에 대해 해시 테이블에서 해당 이름의 값을 1씩 감소시킨다
- 완주하지 못한 선수 출력 : 해시 테이블에서 0보다 큰 값을 가진 이름을 출력한다
이전에는 자료구조 알고리즘에 대해서 개념이 없는 상태로 기초 문제를 다 풀었다.
앞으로 1단계 문제부터는 (알고리즘 학습을 위해) 카테고리에 맞게 문제를 풀어보려고 한다.
처음 접하게 된 해시 알고리즘과 시간 복잡도에 대한 블로그 글을 작성할 예정이다!
728x90
'배움 기록 > 코테 연습' 카테고리의 다른 글
[프로그래머스] 모의고사 : JavaScript (0) | 2025.03.29 |
---|---|
[프로그래머스] 의상 : JavaScript (0) | 2025.03.23 |
[프로그래머스] 빈 배열에 추가, 삭제하기 : JavaScript (1) | 2025.02.17 |
[프로그래머스] 왼쪽 오른쪽 : JavaScript (0) | 2025.02.02 |
[프로그래머스] 2의 영역 : JavaScript (1) | 2025.01.30 |
댓글