알고리즘/Programmers

[Level1] 완주하지못한 선수 🔥

연재몬 2022. 3. 14. 13:10

function solution(participant, completion) {
  let answer = "";
  let player = {};

  for (let i = 0; i < participant.length; i++) {
    if (player[participant[i]] === undefined) {
      player[participant[i]] = 1;
    } else {
      player[participant[i]]++;
    }
  }

  for (let i = 0; i < completion.length; i++) {
    player[completion[i]]--;
  }

  for (let i = 0; i < participant.length; i++) {
    if (player[participant[i]] === 1) {
      return participant[i];
    }
  }
}

객체에 대한 개념이해가 부족해서 많이 어려웠던 문제,,,ㅠㅠ

 

player이라는 빈 객체를 생성해주고,

for문을 통해 돌면서 객체안에 키값을 넣어주었다. 

중복된값이 있기때문에 undefined일 경우 1을 넣어주고

이미 있는 값의경우, count를 하나씩 증가시켜준다. 

 

그리고, 다시 돌면서 합격자명단에 있는 이름을 player에서 -- 해준다.

 

결과적으로 count가 1인 요소만 리턴해주면 

중복된이름까지 처리가 가능!