programmers_튜플_java

2023. 4. 4. 22:26Algorithm/Programmers

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/64065

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.*;

class Solution {
    public int[] solution(String s) {
        int[] answer = {};
        
        // String -> int[]
        int[] arr = Arrays.stream(s.replaceAll("[{}]" , "").split(","))
            .mapToInt(Integer::parseInt)
            .toArray();
        
        // 각 값의 개수 구하기
        Map<Integer, Integer> map = new HashMap<>();
        for(int i : arr){
            if(map.containsKey(i)){
                map.put(i, map.get(i)+1);
            }else{
                map.put(i, 1);
            }
        }
        
        // value로 정렬
        List<Integer> keySet = new ArrayList<>(map.keySet());
        keySet.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1)));
        
        // 많은 것 부터 입력
        answer = new int[map.size()];
        int idx = 0;
        for (int key : keySet) {
            answer[idx++] = key;
        }
        
        return answer;
    }
}