
⛹️♂️실행 코드
- 먼저 순차적인 비교를 위해 sort()를 이용하여 particpant와 completion 배열을 오름차순 정렬했다.
- 그 다음 참여자의 수 만큼 반복문을 통해 participant배열의 값이 completion의 값에 있는지를 비교했다.
function solution(participant, completion) {
var answer = '';
const all = participant.length;
participant.sort();
completion.sort();
for(let i=0;i<all; i++){
if(participant[i] != completion[i]){
answer = participant[i];
return answer;
}
}
}
⛹️♂️다른 사람의 풀이
function solution(participant, completion) {
const obj = {}
for (let p of participant) {
obj[p] = obj[p] ? obj[p] + 1 : 1
}
for (let c of completion) {
obj[c] -= 1
}
for (let key in obj) {
if (obj[key] == 1) {
return key
}
}
}
- 위의 풀이에서는 obj라는 객체를 하나 생성하여 participant 배열을 순회하며 참가자들을 객체 key로 등록시킨 뒤 참가자 명단에 존재할 때마다 1을 더했다.
- 그리고 completion배열을 순회하며 완주자 명단에 있는 객체 변수에서 다시 -1을 해주었다.
- 위 두 과정을 거치면 완주자는 0, 완주하지 못한 선수는 1이상의 값을 가지게 된다.