๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ํŠœํ”Œ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ํŠœํ”Œ

์š”์ผ์ด 2023. 2. 28. 18:54
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

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

public int[] solution(String s) {

        ArrayList<Integer> list = new ArrayList<>();

        HashMap<Integer, Integer> map = new HashMap<>();

        String[] str = s.split("}");

        for(int i=0; i<str.length; i++){
            map.put(i, str[i].length());
        }

        List<Integer> keySet = new ArrayList<>();

        keySet.addAll(map.keySet());

        // Value ๊ฐ’์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        keySet.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return map.get(o1).compareTo(map.get(o2));
            }
        });

        for(int i=0; i<keySet.size(); i++){

            str[keySet.get(i)] = str[keySet.get(i)].replace("{", "");

            String dd = "";

            for(int j=0; j<str[keySet.get(i)].length(); j++){
                if(Character.isDigit(str[keySet.get(i)].charAt(j))){
                    dd += str[keySet.get(i)].charAt(j);
                }else{
                    if(dd.length() > 0 && (!list.contains(Integer.parseInt(dd)))){
                        list.add(Integer.parseInt(dd));
                    }
                    dd = "";
                }
            }

            if(dd.length() > 0 && (!list.contains(Integer.parseInt(dd)))){
                list.add(Integer.parseInt(dd));
            }

        }

        int[] answer = new int[list.size()];

        for(int i=0; i<list.size(); i++){
            answer[i] = list.get(i);
        }

        return answer;
    }
Comments