프로그래머스 - 완주하지 못한 선수 - HashMap - Java

chaemin·2024년 4월 30일
0

프로그래머스

목록 보기
37/64

1. 문제

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

2. 풀이

핵심 ✨Point

동명이인 처리를 해야하기 때문에 HashMap이 적절.
getOrDefault()를 통해 이미 나온 선수도 처리.

🫨다른 풀이

완주하지 못한 선수는 한명이기 때문에 HashMap에서 remove()해 나가고, 정답은 HashMap에서 남은 한명의 선수(Key)이다.

iterator()를 통해 순회하고 next()를 이용해 첫 번째 원소를 호출한다.

return map.keySet().iterator().next()

3. 전체 코드

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        Map<String, Integer> map = new HashMap<>();
        
        for(String str : participant){
            map.put(str, map.getOrDefault(str, 0)+1);
        }
        
        for(String str : completion){
            map.put(str, map.get(str) - 1);
        }
        
        String answer = "";
        for(String str : map.keySet()){
            if(map.get(str) > 0){
                answer += str;
            }
        }
        
        return answer;
    }
}

0개의 댓글