티스토리 뷰

문제는 다음과 같다.

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

 


 

특별히 풀이는 적지 않으려고 한다.

HashMap 을 쓸 줄 안다면, 쉽게 해결 할 수 있을 것 같다.

개발하면서 Map 을 워낙 많이 써서 그런지 익숙하다.. 해쉬는

향상된 for 안쓴건 너무 습관성... 올드해보인다.

여기서 중요한건 중복체크를 위해 getOrDefault 를 썼다는 점.

자동 완성이 안되서 꽤나 귀찮다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.HashMap;
 
class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        HashMap<String, Integer> param = new HashMap<>();
        for(int i=0; i<participant.length; i++){
            param.put(participant[i], param.getOrDefault(participant[i],0+1);
        }
        for(int i=0; i<completion.length; i++){
            param.put(completion[i], param.getOrDefault(completion[i],0-1);
        }
        
        for(String key : param.keySet()){
            if(param.get(key) != 0){
                answer = key;
            }
        }
        
        return answer;
    }
}
cs

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 전화번호 목록  (0) 2022.01.13
댓글
공지사항
글 보관함
최근에 올라온 글
최근에 달린 댓글