본문 바로가기
우코딩 코딩테스트 일기/JavaScript 코딩테스트 (Lv. 1)

JavaScript 코딩테스트 Lv.1 (완주하지 못한 선수)

by 민우's 코딩 2024. 6. 2.

 

완주하지 못한 선수

 

https://school.programmers.co.kr/learn/courses/30/lessons/42576

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

function solution(participant, completion) {
    const map = new Map();
    participant.forEach(v => map.set(v , (map.get(v) || 0) + 1));
    completion.forEach(v => map.set(v, (map.get(v) || 0) - 1));
    for (const [v, value] of map) {
        if (value) {
            return v;
        }
    }
}

 

해시 Map 함수를 이용해서 쉽게 풀어보기

 

participant 배열 (참가자)에 key 값 마다 value 값을 +1을 해주고 

completion 배열 (완주한 참가자)을 체크해서 완주한 참가자의 value 값을 -1 시켜준다.

 

그런 후 value 값이 +1로 남아 있는 참가자를 리턴해주면 된다!

(완주를 했으면 value 값이 1-1로 0이 될테니까)