[알고리즘문제풀기] 완주하지 못한 선수

silver's avatar
Jan 26, 2026
[알고리즘문제풀기] 완주하지 못한 선수

문제

내가 작성한 오답

: 효율성 테스트 실패
class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; for(String s:completion){ for(int i=0; i<participant.length; i++){ if(participant[i].equals(s)) { participant[i] = ""; break; } } } for(String s:participant){ if(!s.isEmpty()) return s; } return answer; } }
notion image

내가 작성한 정답

// Array 이용 import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(participant); Arrays.sort(completion); for(int i=0; i<completion.length; i++){ if(!participant[i].equals(completion[i])) return participant[i]; } return participant[participant.length-1]; } } // HashMap이용 import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { Map<String,Integer> map = new HashMap<>(); for(String s:participant){ map.put(s,map.getOrDefault(s,0)+1); } for(String s:completion){ map.put(s,map.get(s)-1); } for(Map.Entry<String,Integer> e: map.entrySet()){ if(e.getValue()==1) return e.getKey(); } return ""; } }

다른 사람들의 정답

import java.util.Arrays; import java.util.Iterator; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; class Solution { public String solution(String[] participant, String[] completion) { Map<String, Long> participantMap = Arrays.asList(participant).stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); for(String name : completion) { Long value = participantMap.get(name) - 1L; if(value == 0L) { participantMap.remove(name); } else { participantMap.put(name, value); } } return participantMap.keySet().iterator().next(); } }
Share article

silver