[프로그래머스] 튜플 JAVA

AMUD·2022년 11월 15일
0

Algorithm

목록 보기
48/78

문제


문제링크

접근

  • 순서에 대해 해석하는 것이 생각보다 오래걸렸다.
  • 원소가 먼저 있는지 없는지를 판별해야 하니, 각 원소의 길이로 정렬 후, 원소의 원소를 가지고 처리하면 된다.

풀이

import java.util.*;

class Solution {
    public int[] solution(String s) {
        ArrayList<Integer> answer = new ArrayList<>();

        s = s.substring(1, s.length() - 1);
        String[] setsStr = s.replace("},{", "},,{").split(",,");
        ArrayList<ArrayList<Integer>> sets = new ArrayList<>();

        for (int i = 0; i < setsStr.length; i++) {
            String str = setsStr[i];
            str = str.substring(1, str.length() - 1);
            String[] elements = str.split(",");

            sets.add(new ArrayList<>());
            for (int j = 0; j < elements.length; j++) {
                sets.get(i).add(Integer.parseInt(elements[j]));
            }
        }

        Collections.sort(sets, new Comparator<ArrayList<Integer>>() {
            public int compare(ArrayList<Integer> o1, ArrayList<Integer> o2) {
                return Integer.compare(o1.size(), o2.size());
            }
        });

        for (int i = 0; i < sets.size(); i++) {
            for (int j = 0; j < sets.get(i).size(); j++) {
                if (!answer.contains(sets.get(i).get(j)))
                    answer.add(sets.get(i).get(j));
            }
        }

        return answer.stream().mapToInt(Integer::intValue).toArray();
    }
}
profile
210's Velog :: Ambition Makes Us Diligent

0개의 댓글