해시 - 완주하지 못한 선수
https://programmers.co.kr/learn/courses/30/lessons/42576?language=javascript
객체 변수를 선언해서 완주한 선수들의 value 값은 0이 되도록 하고,
완주하지 못한 선수들의 value 값은 1이 되도록해서 결과적으로 value값이 1인 key값을 반환하는 코드를 구현하였다.
function solution(participant,completion){
const participantObj = {};
for (const p of participant){
// 중복된 선수 이름의 value 값을 +1 한다.
if (participantObj[p] == 1)
participantObj[p] += 1;
// 중복이 아닐 경우 value = 1
else participantObj[p] = 1;
}
for (const c of completion){
// 완주한 선수들의 value값만 -1하면 완주하지 못한 선수의 value값은 1이 된다.
if (participantObj[c])
participantObj[c] -= 1;
}
return Object.keys(participantObj).filter(element => participantObj[element] == 1)[0]; // [0] 처리를 해주지 않으면 배열로 반환되기 때문에 문자열 반환처리를 해준다.
}
Object.keys(obj)
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.keys(object1));
// expected output: Array ["a", "b", "c"]
객체 key-value 속성을 이용해서 쉽게 풀 수 있었던 문제. 해시에 대해선 아직 공부해봐야겠다