FrontEnd/프로그래머스

[JS] 완주하지 못한 선수

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