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 |