코드
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인 키들이 완주 못한 참가자들이 된다.