난이도는 1레벨이고 엄청 간단했지만 신기한 정규식 풀이가 있어서 남겨본다
var solution=(_,$)=>_.find(_=>!$[_]--,$.map(_=>$[_]=($[_]|0)+1))
var solution=(participant,completion)=>participant.find(name=>!completion[name]--,completion.map(name=>completion[name]=(completion[name]|0)+1))
주자 배열을 {이름:완주자배열에 등장하는 횟수}로 맵핑하고, 그 맵에 참가자 이름 하나씩 넣어서 찾아볼때마다 횟수 떨어뜨려서 횟수 0나오는 놈 찾아뱉는 함수같네요
라는 고인물의 코멘트
어렵다 어려워...
function solution(participant, completion) {
const map = new Map();
for(let i = 0; i < participant.length; i++) {
let a = participant[i],
b = completion[i];
map.set(a, (map.get(a) || 0) + 1);
map.set(b, (map.get(b) || 0) - 1);
}
for(let [k, v] of map) {
if(v > 0) return k;
}
return 'nothing';
}
정석 풀이는 이거지 않을까..하는 개인적인 생각
'알고리즘' 카테고리의 다른 글
[JavaScript] 데이터구조 (0) | 2024.03.31 |
---|---|
[JavaScript] 시간 복잡도 줄이기 (0) | 2024.03.27 |
[JavaScript] 단순 서치 성능 개선하기 (0) | 2024.03.27 |
[JavaScript] map, reduce 함수 (0) | 2024.03.09 |