[프로그래머스] 완주하지 못한 선수 - JS

잡초·2024년 6월 3일
0
post-thumbnail

문제

풀이

function solution(participant, completion) {
  // 참가자 배열과 완주자 배열을 정렬
  participant.sort();
  completion.sort();
  
  // 참가자 배열을 순회하면서 각 참가자가 완주자 배열과 일치하지 않는지 확인
  for (var i = 0; i < participant.length; i++) {
    if (participant[i] !== completion[i]) {
      return participant[i];
    }
  }
}

다른 풀이

function solution(participant, completion) {
  // 참가자와 완주자의 정보를 저장할 Map 객체 생성
  const map = new Map();

  // 참가자와 완주자 배열을 순회
  for (let i = 0; i < participant.length; i++) {
    let a = participant[i];
    let b = completion[i];
    
    // 참가자의 이름을 키로, 해당 이름이 등장한 횟수를 값으로 Map에 저장
    map.set(a, (map.get(a) || 0) + 1);
    
    // 완주자의 이름을 키로, 해당 이름이 등장한 횟수를 값으로 Map에서 감소
    map.set(b, (map.get(b) || 0) - 1);
  }

  // Map을 순회하여 값이 0보다 큰 키(참가자 이름)를 찾음
  for (let [k, v] of map) {
    if (v > 0) return k; // 값이 0보다 큰 경우, 해당 키(참가자 이름)를 반환
  }
}
profile
개발자가 되고싶은 잡초

0개의 댓글