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;
}
}
}
단순하게 obj를 정의하고 참가자 배열과 완주자 배열에서 obj[item] 값을 +1 시켜줘서 홀수라면 해당 key값을 리턴하도록 풀이함
→ 그런데 불필요한 obj[key] % 2 !== 0 를 해줘야해서 다시 풀이했음
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];