(알고리즘) 완주하지 못한 선수

코딩을 합시다·2022년 12월 17일
0

import java.util.HashMap;
import java.util.Map;
class Solution {
public String solution(String[] participant, String[] completion) {
Map<String, Integer> completions = new HashMap<>();
for (String target : completion) {
completions.put(target, completions.getOrDefault(target, 0) + 1);
// put 키와값을 넣어주는역활
// getOrDefault 키를 찾는데 있으면 키의 값을 반환 없으면 디폴트 값을 반환
// 그런데 여기선 디폴트 값을 반환해도 +1이 더해지기 떄문에 put으로 입력될때는 key=1로 저장됨
// 다음에 다시 같은 target을 찾으면 completions target의 value값(1)이 나와서 1+1로 target=2로 저장됨
}

    String answer = "";
    for (String target : participant) {
        if (!completions.containsKey(target)) { // containsKey를 이용해서 키 값을 가지고 있는지 확인
            answer = target;
            break;
        }

        if (completions.get(target) != 0) {
            completions.put(target, completions.get(target) - 1);
        } else {
            answer = target;
            break;
        }
    }
    return answer;
}

}

0개의 댓글