[프로그래머스] 완주하지 못한 선수 풀이 (Hash)

2025. 4. 26. 17:31·Algorithm

문제 소개

오늘 풀었던 프로그래머스 - 완주하지 못한 선수 문제를 정리합니다.

이 문제는 마라톤에 참여한 선수 중 단 한 명, 완주하지 못한 선수를 찾는 문제입니다.
동명이인이 있을 수 있기 때문에, 단순한 포함 여부 체크가 아니라 이름의 등장 횟수를 정확히 비교하는 것이 핵심입니다.

문제 링크: 완주하지 못한 선수 - 프로그래머스


문제 접근 방식

이 문제는 다음과 같은 방식으로 접근했습니다:

  1. HashMap을 이용하여 참가자의 이름과 등장 횟수를 기록합니다.
  2. 완주자의 이름을 하나씩 처리하면서 등장 횟수를 차감합니다.
  3. 등장 횟수가 0이 아닌 선수가 완주하지 못한 선수입니다.

해결 과정 및 코드

핵심 아이디어

  1. 참가자 이름을 HashMap에 저장하고, 완주자 이름을 만나면 값을 감소시킨다.
  2. 최종적으로 값이 0이 아닌 이름을 찾아 반환한다.

코드

시간 복잡도 : 최대 O(N) ( 참가자 수만큼 put )

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        HashMap<String, Integer> hm = new HashMap<>();
        // 참가자 이름 : +1 
        for (String player : participant) hm.put(player, hm.getOrDefault(player, 0) + 1);
        // 완주자 이름 : -1
        for (String player : completion) hm.put(player, hm.get(player) - 1);
        // 0이 아닌 참가자 탐색
        for (Map.Entry<String, Integer> player : hm.entrySet()) {
            if (player.getValue() == 0) continue;
            answer = player.getKey();
            break;
        }
        return answer;
    }
}

'Algorithm' 카테고리의 다른 글

[프로그래머스] 가장 큰 수 풀이 (정렬)  (0) 2025.04.26
[프로그래머스] K번째 수 풀이 (정렬)  (0) 2025.04.26
[프로그래머스] N으로 표현 풀이 (DP)  (0) 2025.04.26
[프로그래머스] 타겟넘버 문제 풀이 (BFS)  (0) 2025.03.17
[백준] 15684 - 사다리 조작 문제 풀이 (백트래킹)  (0) 2025.03.14
'Algorithm' 카테고리의 다른 글
  • [프로그래머스] 가장 큰 수 풀이 (정렬)
  • [프로그래머스] K번째 수 풀이 (정렬)
  • [프로그래머스] N으로 표현 풀이 (DP)
  • [프로그래머스] 타겟넘버 문제 풀이 (BFS)
Celion
Celion
오늘도 평소처럼 화이팅!
  • Celion
    Orion Log
    Celion
  • 전체
    오늘
    어제
    • 전체 글 (144)
      • Uncompiled Thoughts (8)
        • 네이버 부스트캠프 10기 (5)
      • CS 기초부터 한 걸음씩 (34)
      • Code Odyssey (22)
      • Algorithm (77)
        • Coding Test Records (63)
      • Git (3)
      • reference (0)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 태그

    코테
    시뮬레이션
    greedy
    알고리즘고득점kit
    백준
    프로그래머스
    문법정리
    Level2
    Kotlin
    Level3
    java
    boostcamp
  • 최근 글

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
Celion
[프로그래머스] 완주하지 못한 선수 풀이 (Hash)
상단으로

티스토리툴바