Algorithm
[Algorithm] 프로그래머스_완주하지 못한 선수(JAVA)
dev_ajrqkq
2024. 12. 13. 15:05
https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
hashMap을 사용하여 participant 배열의 선수들을 key값으로 넣고 value에 해당 선수가 몇명인지 넣는다.
그 후 completion배열의 선수들에 대해 value값을 -1 해준다.
결과적으로 value값이 0이 아닌 선수를 return해준다.
hashMap의 getOrDefault메서드를 사용하여 코드의 가독성을 높일 수 있다.
getOrDefault(key, defaultValue) => key가 존재하면 기존 value값을, 존재하지않으면 defaultValue값을 반환해준다.
풀이는 아래와 같다.
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
HashMap<String, Integer> hashMap = new HashMap<>();
for(String player : participant){
hashMap.put(player, hashMap.getOrDefault(player, 0) + 1);
}
for(String player : completion){
hashMap.put(player, hashMap.get(player) - 1);
}
for(String key : hashMap.keySet()){
if(hashMap.get(key) > 0){
return key;
}
}
return "";
}
}