728x90
map 자료형을 활용해서 완주한 선수들을 map에 저장하고, 동명이인이 있을 수 있으니 수를 카운트해주었다.
이후, participant에서 완주한 사람들의 카운팅 수를 줄여나가면서 없는 한사람을 찾았다.
function solution(participant, completion) {
const map = new Map();
completion.forEach(el => {
if(map.has(el)) map.set(el,map.get(el)+1)
else map.set(el,1)
})
return participant.filter(el => {
if ( map.has(el) && map.get(el) ) {
map.set(el,map.get(el)-1)
return false
} else return true
}).join("");
}
이후 정답을 보는데 공부를 더 해야겠다라는 생각이 들었다. 어차피 완주하지 못하는 사람이 단 한명이므로, 양 배열을 정렬한 후에 비교하다가 틀려지는 지점을 찾는 풀이가 있었는데 참 인상깊었다.
728x90
'FrontEnd > 프로그래머스' 카테고리의 다른 글
[JS] 소수만들기 (0) | 2023.05.02 |
---|---|
[JS] 다트 게임 (0) | 2023.05.01 |
[JS] K번째 수 (0) | 2023.04.27 |
[JS] 모의고사 (0) | 2023.04.25 |
[JS] 체육복 (0) | 2023.04.25 |