완주하지 못한 선수

seheeee_97·2023년 12월 27일
0

회고팀

목록 보기
37/41

import java.util.HashMap;

class Solution {
    public String solution(String[] participant, String[] completion) {

        // 해시맵 생성
        HashMap<String, Integer> map = new HashMap<>();

        // 참여자 명단 해시맵에 넣기
        for (String name : participant) {
            // 이름이 이미 해시맵에 있으면 값을 증가시키고, 없으면 1로 초기화
            map.put(name, map.getOrDefault(name, 0) + 1);
        }

        // 완주자 명단을 활용하여 해시맵에서 값을 1 감소
        for (String name : completion) {
            map.put(name, map.get(name) - 1);
        }

        // 해시맵에서 값이 1인 키(완주하지 못한 참가자) 찾기
        String answer = "";
        for (String key : map.keySet()) {
            if (map.get(key) == 1) {
                answer = key;
                break;
            }
        }
        
        return answer;
    }
}







getOrDefault 메서드는 주어진 키에 해당하는 값을 반환
getOrDefault(키, 키가 없을 때 반환할 기본값)
-> 이렇게 작성해도 값이 있으면 원래 키에 매칭되는 값이 나옴(없는 경우에만 기본값 반환)


map.getOrDefault(name, 0) -> map에서 name(키)에 맞는 값 반환, 없을 경우 0 반환
map.getOrDefault(name, 0) + 1 -> 키에 맞는 값이나 0에 +1한 값
(name, map.getOrDefault(name, 0) + 1); -> 키, getOrDefault로 얻은 값
map.put(name, map.getOrDefault(name, 0) + 1); -> map에 저장





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

0개의 댓글