티스토리 뷰

프로그래머스 고득점 kit 

구현 - 완주하지 못한 선수

import java.util.Arrays;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        Arrays.sort(participant);
        Arrays.sort(completion); 
        int i;
        for(i=0; i<completion.length; i++){
            if(!participant[i].equals(completion[i])) {
                answer = participant[i]; 
                return answer;
            }
        }
        answer = participant[i];
        return answer;
    }
}

Array.sort()를 통해 먼저 정렬한 후 같지 않는 것을 찾는 방식이다. 

배열문제에서 sort를 사용할 생각을 잘 못하는 것 같다. 

 

import java.util.Arrays;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        Map<String, Integer> map = new HashMap<String, Integer>();
        for(int i = 0; i < participant.length; i++) 
            map.put(participant[i], map.getOrDefault(participant[i], 0) + 1); // 1**
        for(int i = 0; i < completion.length; i++) 
            map.put(completion[i], map.get(completion[i]) - 1);
        for(String key: map.keySet()){
            if(map.get(key)!=0) answer = key;
        }            
        return answer;
    }
}

map 메소드 중 getOrDefault(); 를 잘 몰랐는데

1** - map 에서 participant[i] 값이 있다면 그 값을 반환하고 없다면 기본값(0)을 반환하는 메소드이다.

'algorithm' 카테고리의 다른 글

동적프로그래밍 알고리즘  (0) 2021.04.09
[algorithm] 전화번호 목록  (0) 2021.04.03
[algorithm] 분할정복 알고리즘(2)  (0) 2021.03.30
[algorithm] 분할정복 알고리즘  (0) 2021.03.26
[algorithm] 알고리즘의 기초  (0) 2021.03.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함