99클럽 코테 스터디 5일차 TIL - 해시

김동하·2024년 7월 26일
0

알고리즘

목록 보기
56/90

문제

완주하지 못한 선수

풀이

  • 해시맵으로 참여 인원을 카운팅한다.
  • 다시 해시맵으로 완주 인원을 제외한다.
  • 해시맵에 남았다면 완주하지 못 한 것

코드

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


class Solution {
    public String solution(String[] participant, String[] completion) {
        Map<String, Integer> participantMap = new HashMap<>();
        
        for(String p : participant){
            participantMap.put(p, participantMap.getOrDefault(p, 0) + 1);
        }
        
        for(String c : completion){
            participantMap.put(c, participantMap.get(c) - 1);
        }
        
        for (Map.Entry<String, Integer> entry : participantMap.entrySet()) {
          if(entry.getValue() > 0) return entry.getKey();
        }
        
        return "";
    }
}

정리

  • 해시맵에 값을 넣을 때 getOrDefault를 사용하면 null 체크도 같이 해준다
  • 참가자 배열, 완주자 배열을 sort하고 for문을 순회하는 방식도 있는데, 해시맵으로 풀어봤다
profile
프론트엔드 개발

0개의 댓글