완주하지 못한 선수

Updated:

해쉬문제이다. Map을 이용해서 출전명단에 있는 사람의 수를 체크를 한다음

완료명단에 있는 사람을 찾아, Map에서 해당하는 사람의 수를 하나씩 줄였다.

이때 Map에 value로 1이 남아있는 Key값이 답이 된다

by Java

import java.util.*;
class Solution {
    public String solution(String[] participant, String[] completion) {
        Map<String,Integer> map = new HashMap<>();
        for(int i=0;i<participant.length;i++) {
            String s = participant[i];
            if(map.get(s)==null) {
                map.put(s,1);
            }
            else {
                int value = map.get(s);
                value++;
                map.remove(s);
                map.put(s,value);
            }
        }
        
        for(int i=0;i<completion.length;i++)  {
            String complete = completion[i];
            int value = map.get(complete);
            value--;
            map.remove(complete);
            map.put(complete,value);
        }
        String answer ="";
        for(String e : map.keySet()) {
            if(map.get(e)==1) {
                answer = e;
                break;
            }
        }
        return answer;
    }
}

Leave a comment