본문 바로가기
Coding Test/Programmers

[프로그래머스] 완주하지 못한 선수 [JAVA(자바)]

‘프로그래머스 코딩테스트 고득점 Kit’ 문제 입니다. 😀

문제 👉 <코딩테스트 연습 - 완주하지 못한 선수 | 프로그래머스>

1. 문제

  1. 마라톤에 참여한 선수 participant 와 마라톤을 완주한 선수 completion 을 통해 완주하지 못한 1명을 찾아라.
  2. 참가자 중에는 동명이인이 있다.
  3. 참가자의 이름은 1개 이상 20개 이하이며 알파벳 소문자로 이루어져 있다.

2. 풀이

해시 를 이용한 문제 풀이

  1. key는 완주한 선수의 이름을 value는 해당 선수의 이름을 카운트하는 Hash를 생성한다.
  2. 참가자와 완주한 선수의 Hash를 통해 완주하지 못한 1명을 찾는다.

3. 코드

import java.util.*;
class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        HashMap<String, Integer> hm = new HashMap<>();

        for (String p : participant) {
            hm.put(p, hm.getOrDefault(p, 0) + 1);
        }

        for (String c : completion) {
            hm.put(c, hm.get(c) - 1);
        }

        for (String key : hm.keySet()) {
            if (hm.get(key) != 0){
                answer = key;
            }
        }

        return answer;
    }
}


References


🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋

댓글