📝 문제

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


✅ 제출 답안

처음 풀이

function solution(participant, completion) {
    const obj = {};
    
    participant.forEach((item) => {
        obj[item] = (obj[item] ?? 0) + 1;
    })
    
    completion.forEach((item) => {
        obj[item] += 1;
    })
    
    for (key in obj) {
        if (obj[key] % 2 !== 0) {
            return key;
        }
    }
}

최종 풀이

function solution(participant, completion) {
    const map = {};
    
    participant.forEach((p) => map[p] = (map[p] ?? 0) + 1);
    completion.forEach((c) => map[c]--);
    
    return Object.keys(map).find((key) => map[key] !== 0);
}

💡 다른 풀이

participant.sort();
completion.sort();

for (let i = 0; i < completion.length; i++) {
  if (participant[i] !== completion[i]) {
    return participant[i];
  }
}
return participant[participant.length - 1];