프로그래머스 코딩테스트 연습/Level2

[프로그래머스][JAVA] 튜플

긷뚜 2021. 5. 6. 12:32
728x90

programmers.co.kr/learn/courses/30/lessons/64065

 

코딩테스트 연습 - 튜플

"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]

programmers.co.kr

우선 들어온 값인 s를 길이가 짧은 집합 순으로 2차원 배열의 형태로 가공해줬다

그리고 배열을 순회 하며 이전 배열에는 없던 요소를 return 값에 추가하는 방식으로 풀어냈다

import java.util.*;
class Solution {
    public int[] solution(String s) {
        s = s.substring(1,s.length()-1);
        s= s.replace("{","");
        String[] test = s.split("}");
        Arrays.sort(test, new Comparator<String>(){
           @Override
            public int compare(String o1, String o2){
                Integer a = o1.length();
                Integer b = o2.length();
                return a.compareTo(b);
            }
        });
        String[][] numList = new String[test.length][];
        for(int i =0;i<test.length;i++){
            numList[i] = test[i].split(",");
            Arrays.sort(numList[i]);
        }
        
        int[] answer = new int[test.length];
        
        for(int i =0;i<numList.length;i++){
            String temp = "";
            for(int j =0;j<numList[i].length;j++){
                if(!numList[i][j].equals("0")){
                    temp = numList[i][j];
                }
            }
            for(int j=i+1;j<numList.length;j++){
                for(int k = 0;k<numList[j].length;k++){
                    if(numList[j][k].equals(temp)){
                        numList[j][k] = "0";
                    }
                }
            }
            answer[i] = Integer.parseInt(temp);
        }

        return answer;
    }
}
728x90