728x90
반응형
(1) 내 풀이
function solution(participant, completion) {
const hash ={}
participant.forEach(name =>{
if(!hash[name]) hash[name] = 0;
hash[name] ++
})
completion.forEach(name =>{
hash[name]--
})
for(const key in hash){
if(hash[key] !== 0 ){
return key
}
}
}
1. Hash 객체 생성
2. 참가자를 Hash 객체에 넣는데, value는 없으면 0 있으면 +1
3. 완주자를 Hash 객체의 value -1
4. 카운트가 0이 아닌 사람 = 완주 못한 선수의 이름
(2) 다른사람 풀이-1
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';
}
1. map.set 메소드로 map에 새로운 객체 추가 // map.set(key,value)
(3) 다른사람 풀이-2
function solution(participant, completion) {
participant.sort();
completion.sort();
for(let i in participant) {
if(participant[i] !== completion[i]) return participant[i];
}
}
1. 참가자와 완주자 sort해서 같지 않으면 리턴
끝.
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스 | javascript] K번째수 (정렬) (0) | 2024.04.13 |
---|---|
[프로그래머스 | javascript] 전화번호 목록 (해시) (0) | 2024.04.13 |
[프로그래머스 | javascript] 폰켓몬 (해시) (0) | 2024.04.11 |
[프로그래머스 | javascript] 2016년 (1) | 2023.12.26 |
[프로그래머스 | javascript] 명예의 전당 (1) (0) | 2023.12.23 |