[programmers] 완주하지 못한 선수

Link

https://programmers.co.kr/learn/courses/30/lessons/42576


Code

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        Map<String, Integer> map = new HashMap<>();
        String result = "";
        for (String c : completion) {
            if (map.containsKey(c)) {
                map.put(c, map.get(c) + 1);
            }
            else {
                map.put(c, 1);
            }
        }
        for (String p : participant) {
            if (map.containsKey(p)) {
                if (map.get(p) > 1) {
                    map.put(p, map.get(p) - 1);
                }
                else {
                    map.remove(p);
                }
            }
            else {
                result = p;
                break;
            }
        }
        return result;
    }
}

Solution

완주자배열을 돌며 HashMap을 생성, 이름의 수만큼을 value로 설정한다. 참가자배열을 돌며 HashMap에서 존재하면 value값을 빼고 0이되면 HashMap에서 key값을 삭제, 만약 key값이 존재하지 않으면 그 값이 정답

좋은 웹페이지 즐겨찾기