매일 Algorithm

신재원·2024년 1월 14일
0

Algorithm

목록 보기
243/243

2019 카카오 개발자 겨울 인턴십 튜플 LV 2

  1. replaceAll 메소드를 알아야 하고, [{}] 이러한 String을 떠올려 replace 해야 된다고 떠올려야 한다.

  2. Collections.sort() 메소드를 오버라이딩 하여 작성할줄 알아야함

import java.util.*;

class Solution {
    public int[] solution(String s) {
        Map<Integer, Integer> store = new HashMap<>();
        
        // 1. {} 괄호를 replaceAll
        s = s.replaceAll("[{}]", "");
        
        for(String numbers : s.split(",")){
            int number = Integer.valueOf(numbers);
            store.put(number, store.getOrDefault(number, 0) + 1);
        }
        
        // 2. 키의 value값을 기준으로 키값을 오름차순 정렬
        List<Integer> result = new ArrayList<>(store.keySet());
        
        Collections.sort(result, new Comparator<Integer>() {
            public int compare(Integer n1, Integer n2){
                return store.get(n2) - store.get(n1);
            }
        });
        
        // 3. 정렬된 값 배열에 담기
        int[] answer = new int[result.size()];
        
        for(int i = 0; i < result.size(); i++){
            answer[i] = result.get(i);
        }
        
        return answer;
    }
}

0개의 댓글