본문 바로가기
배움 기록/코테 연습

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

by dygreen 2025. 3. 22.
반응형

📌 문제

 

📌 풀이

function solution(participant, completion) {
    const hash = {};
    for (const name of participant) {
        hash[name] = (hash[name] || 0) + 1;
    }
    for (const name of completion) {
        hash[name]--;
    }
    for (const name in hash) {
        if (hash[name] > 0) return name
    }
}

 

해당 문제는 해시 알고리즘 카테고리에 있는 문제였다 (따라서 해시에 맞게 풀이함)

  1. 해시 테이블 생성 : 참가자 이름을 key, 해당 이름이 이미 존재하면 1을 더하고, 없으면 1로 초기화한다
  2. 완주자 처리 : 완주자 배열의 각 이름에 대해 해시 테이블에서 해당 이름의 값을 1씩 감소시킨다
  3. 완주하지 못한 선수 출력 : 해시 테이블에서 0보다 큰 값을 가진 이름을 출력한다

 


 

이전에는 자료구조 알고리즘에 대해서 개념이 없는 상태로 기초 문제를 다 풀었다.
앞으로 1단계 문제부터는 (알고리즘 학습을 위해) 카테고리에 맞게 문제를 풀어보려고 한다.

 

처음 접하게 된 해시 알고리즘과 시간 복잡도에 대한 블로그 글을 작성할 예정이다!

 

728x90

댓글