알고리즘/프로그래머스
[프로그래머스] 완주하지 못한 선수 문제풀이 JS
_hoji
2023. 8. 10. 20:29
완주한 선수 리스트를 탐색해서
checkComplete에 해당이름의 완주한 선수들의 수를 저장한다.
(동명이인이 몇명인지 모르니 수를 저장)
이후 참가한 선수 리스트를 탐색해서,
해당 선수의 이름이 checkComplete에 존재한다면
그 선수는 완주한 것이므로 해당 이름의 checkComplete를 감소한다.
checkComplete가 undefined거나 수가 0이면
완주하지 못한 선수이므로 해당 선수 이름을 return하면
원하는 결과를 구할 수 있다.
function solution(participant, completion) {
let checkComplete = {}
for (const c of completion) checkComplete[c] = checkComplete[c] + 1 || 1
for (const p of participant) {
if (!checkComplete[p]) return p
else {
checkComplete[p]--
}
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/42576