https://programmers.co.kr/learn/courses/30/lessons/42576
{
[참가자이름]: {
name: 참가자이름,
isPass: 통과한 수 (동명이인이 존재하므로)
count: 참가자 수 (동명이인이 존재하므로)
}
}
isPass
를 증가신킨다.isPass
(통과한 수)와 count
(참가자 수)가 다르면 완주하지 못한 선수로 판별한다.function mapper(participant) {
const map = {};
participant.forEach(p => {
map[p] = {
name: p,
isPass: 0,
count: map[p] && map[p].count ? map[p].count + 1 : 1,
}
});
return map;
}
function pass(completion, map) {
completion.forEach(c => {
map[c].isPass++;
});
}
function getNotPassedParticipant(map) {
const [{ name: isNotPassedParticipantName }] = Object.values(map)
.filter(ObjP => ObjP.isPass !== ObjP.count);
return isNotPassedParticipantName;
}
function solution(participant, completion) {
const map = mapper(participant);
pass(completion, map);
return getNotPassedParticipant(map);
}