[programmers] 튜플

문제 풀이 : 2021.05.01

풀이

  1. 앞부분의 {{ 과 뒷부분의 }} 를 substring으로 자름
  2. 가운데 튜플들의 집합을 나누는 },{를 " " 로 replace로 대체
  3. " "를 기준으로 split하여 String 배열 생성
  4. 각 String 배열을 길이 순서대로 sort
  5. ArrayList에 하나씩 넣으면서 contains로 존재여부 파악
    5-1. 존재하지 않으면 answer과 ArrayList에 add
    5-2. 존재하면 skip

코드

import java.util.*;
class Solution {
    public int[] solution(String s) {       
        String tmp = s.substring(2,s.length()-2);
        tmp = tmp.replace("},{"," ");
        String[] str = tmp.split(" ");
        int[] answer = new int[str.length];
        Arrays.sort(str, (o1, o2) -> o1.length() - o2.length());
        ArrayList<Integer> arr = new ArrayList<>();
        
        arr.add(Integer.parseInt(str[0]));
        answer[0] = Integer.parseInt(str[0]);
        for(String a : str){
            String[] str2 = a.split(",");
            for(int i = 0;i<str2.length;i++){
                Integer b = Integer.parseInt(str2[i]);
                if(!arr.contains(b)){
                    arr.add(b);
                    answer[str2.length-1] = b.intValue();
                }
            }
        }
        return answer;
    }
}

문제 출처 : 링크

좋은 웹페이지 즐겨찾기