🥞 BE
home

42576_완주하지 못한 선수

담당자
완료 여부
Solved
요약
날짜
2024/07/19
태그
자료구조
난이도
Lv1
출처
프로그래머스

코드

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) { // 이름별 카운트값 1 증가 participantMap.put(p, participantMap.getOrDefault(p, 0) + 1); } for (String player : completion) { // 이름별 카운트값 다시 감소시킴 participantMap.put(player, participantMap.get(player) - 1); // 여기서 값 0인애들 == 완주한 애들 -> 지우고 남아있는 애들이 완주 못한 애들 if (participantMap.get(player) == 0) { participantMap.remove(player); } } // 남아 있는 이름 찾기 for (String player : participantMap.keySet()) { return player; } return null; // 항상 1명은 있음 } }
Java
복사

문제 해결 아이디어

맵을 선언하고 참가자, 완주자 각각 키를 매핑하여 값(카운트)을 증감시켜서 두개의 입력값을 비교했다. 참가자 맵은 +, 완주자 맵은 -해서 값이 0인 키들이 완주 못한 참가자들이 된다.