[algorithm] - 완주하지 못한 선수

818 단어 algorithmalgorithm


📝 풀이

function solutionC(participant, completion) {
  let arr = [];

  participant.forEach((a) => {
    arr[a] = arr[a] ? arr[a] + 1 : 1;
  });
  
  completion.forEach((b) => {
    arr[b] = arr[b] - 1
  });
  
  for (let key in arr) {
    if (arr[key] >=1 ) return key;
  }
}

forEach() 와 for..in 문을 써서 풀이를 할 수 있다.
1️⃣ 빈 배열을 선언하고
2️⃣ 참가자 배열을 forEach 메서드로 배열의 각 요소에 접근해서 빈 배열에 넣고 원래의 빈 배열에 참가자 배열의 요소가 없을 때 값 1을 갖는다
3️⃣ 완주자 배열을 forEach 메서드로 arr 에 완주자 배열의 요소가 있을 때 값 1을 없앤다
4️⃣ for .. in문으로 arr 배열의 key 에 접근해서 key 가 가진 value 가 1 이상인 key 만 return

Hash 문제라 map 함수를 써서 다시 풀어봐야할 문제 같다.

좋은 웹페이지 즐겨찾기