[프로그래머스 코딩테스트] 해시 - 완주하지 못한 선수

EUN JY·2022년 2월 9일
2

Coding Test

목록 보기
1/9
post-thumbnail

Arrays.sort()를 이용하는 풀이법도 봤는데,
'completion의 길이는 participant의 길이보다 1 작습니다.' 이 조건에서
1이 아닌 다른 숫자가 올 경우를 대비하면 아래 코드가 더 나을 것 같았다.

동명이인 케이스가 있어서 hm.getOrDefault(player, 0) + 1);로 풀이한 내용을 참고했다.

import java.util.Arrays;
import java.util.ArrayList; 
import java.util.HashMap;

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

        for (String player : participant) {
            hm.put(player, hm.getOrDefault(player, 0) + 1);
        }
        for (String player : completion) {
            hm.put(player, hm.get(player) - 1);
        }

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

        
        return answer;
    }
}
profile
개린이

0개의 댓글