prgms.42576 - 완주하지 못한 선수

import java.util.HashMap;
import java.util.Map;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        Map<String, Integer> map = new HashMap<>();
        for (String p : participant) {
            if (map.containsKey(p)) {
                int count = (int) map.get(p);
                map.put(p, count + 1);
            } else {
                map.put(p, 1);
            }
        }
        for (String c : completion) {
            if (map.containsKey(c)) {
                int count = (int) map.get(c);
                if (count <= 1) {
                    map.remove(c);
                } else {
                    map.put(c, count - 1);
                }
            }
        }
        for (String key : map.keySet()) {
            answer = key;
        }
        return answer;
    }
}
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;
    }
}
class Solution {
    public String solution(String[] participant, String[] completion) {
        Arrays.sort(participant);
        Arrays.sort(completion);
        int i;
        for (i = 0; i < completion.length; i++) {
            if (!participant[i].equals(completion[i])) {
                return participant[i];
            }
        }
        return participant[i];
    }
}
class Solution {
    public String solution(String[] participant, String[] completion) {
        Map<String, Long> participantMap = Arrays.asList(participant).stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

        for (String name : completion) {
            Long value = participantMap.get(name) - 1L;

            if (value == 0L) {
                participantMap.remove(name);
            } else {
                participantMap.put(name, value);
            }
        }

        return participantMap.keySet().iterator().next();
    }
}