function solution(participant, completion) {
participant.sort()
completion.sort()
for (let i = 0; i < participant.length; i++) {
if(participant[i] !== completion[i]) {
let result = participant[i]
return result;
}
}
}
이번 알고리즘은 입출력 예시만 보고선 "훗,, 넘나 쉽네 🤷♂️" 너무 얕보았다.
무식하게 그냥 한 배열 하나하나 비교를 하다 동명이인이라는 경우에 로직을 어떻게 구현해야할지 막혀버려
계속 문제를 분석하다 생각해보니 participant
와 completion
배열에 sort()
정렬하고
각각 하나씩 반복문으로 비교하여 undefiend
가 나오면 완주하지 못한 선수로 판별이 가능해졌다.
오늘 문제로 교훈을 얻은건 쉽게 생각하지말고 "모든 문제를 깊게 분석하자" 이다.
var solution=(_,$)=>_.find(_=>!$[_]--,$.map(_=>$[_]=($[_]|0)+1))
😨 😨 ...?
정규표현식인가,,,
이번 모범답안은 여러번 풀어보아도 도저히 이해가 안되는 것 같다.
해당 답안에 대한 사람들 반응도 엄청 뜨겁다..🔥 🔥 🔥
정규표현식은 항상 시간 복잡도가 낮은 관계로 효율성이 엄청 좋은 방법인거 같다.