function solution(participant, completion) {
// 참가자 배열과 완주자 배열을 정렬
participant.sort();
completion.sort();
// 참가자 배열을 순회하면서 각 참가자가 완주자 배열과 일치하지 않는지 확인
for (var i = 0; i < participant.length; i++) {
if (participant[i] !== completion[i]) {
return participant[i];
}
}
}
다른 풀이
function solution(participant, completion) {
// 참가자와 완주자의 정보를 저장할 Map 객체 생성
const map = new Map();
// 참가자와 완주자 배열을 순회
for (let i = 0; i < participant.length; i++) {
let a = participant[i];
let b = completion[i];
// 참가자의 이름을 키로, 해당 이름이 등장한 횟수를 값으로 Map에 저장
map.set(a, (map.get(a) || 0) + 1);
// 완주자의 이름을 키로, 해당 이름이 등장한 횟수를 값으로 Map에서 감소
map.set(b, (map.get(b) || 0) - 1);
}
// Map을 순회하여 값이 0보다 큰 키(참가자 이름)를 찾음
for (let [k, v] of map) {
if (v > 0) return k; // 값이 0보다 큰 경우, 해당 키(참가자 이름)를 반환
}
}