반응형
문제 보기 : https://programmers.co.kr/learn/courses/30/lessons/42576
설명
- 해쉬 문제로 오브젝트를 사용하면 되는 문제이다. sort로 푸는 방법도 있지만, 오브젝트를 이용하는 것이 좀 더 빠르다.
- 참가자의 요소를 순회하면서 오브젝트의 키값으로 넣고 처음 나온 경우 value는 1로, 그렇지 않은 경우 기존 값에 +1한다.
- 완주자의 요소를 순회하며 오브젝트의 벨류를 -1 한다.
- 최종적으로 오브젝트를 순회하며 value가 1이상인 키를 리턴한다.
코드
- 조건 ? true인 경우 : false인 경우
function solution(participant, completion) {
const name = {}
for (let part of participant) {
name[part] = name[part] ? name[part] + 1 : 1 // 3항 연산자
}
for (let comp of completion) {
name[comp] -= 1
}
for (let myName in name) {
if (name[myName]) {
return myName;
}
}
}
반응형