해시 개념을 이해하고 있는가?
function solution(participant, completion) {
completion.map(item => {
if (participant.includes(item))
participant.splice(participant.indexOf(item), 1)
})
return participant.toString()
}
채점 결과 정확성 테스트는 통과하였으나 효율성 테스트에서는 통과하지 못했다. 속도가 느려거 그런 것 같다. 해시를 공부 해야겠다....
function solution(participant, completion) {
participant = participant.sort()
completion = completion.sort()
for (let a = 0; a < participant.length; a++) {
if (participant[a] !== completion[a]) {
return participant[a]
}
}
return participant;
}
정렬을 한 다음 반복문 루프안에서 조건문을 사용하여 값이 같지 않을 경우,값을 반환하게 된다. 속도측면에서 이것이 괜찮아서 통과한 것 같다.
var solution=(participant,completion)=>participant.find(name=>!completion[name]--,completion.map(name=>completion[name]=(completion[name]|0)+1))
완주자 배열을 {이름:완주자배열에 등장하는 횟수}로 맵핑하고, 그 맵에 참가자 이름 하나씩 넣어서 찾아볼때마다 횟수 떨어뜨려서 횟수 0나오는 놈 찾아뱉는 함수인 것 같다.
풀이에서 패터쓴님께서 자세하게 풀이해주셨다. 참고해서 유사문제가 나오면 참고해서 나도 써먹어야겠다