https://school.programmers.co.kr/learn/courses/30/lessons/64065
/*
작은 길이의 부분집합일 수록 먼저 먼저 온 것임
1. 부분집합에 길이에 따라서 정렬(길이 증가하는 순으로)
1-1. string -> int형 arr로
2. 그 후 차례대로 순회하면서 set만들어 원소 넣음
3. set을 입력한대로(linkedHashSet) 쭉 출력하면 됨
*/
import java.util.*;
class Solution {
public int[] solution(String s) {
s = s.substring(1, s.length()-1); // 앞뒤 제거
List<String> list = new ArrayList<>();
String each = "";
boolean flag = false;
for(char c : s.toCharArray()){
if(c == '{') flag = true;
else if(c == '}'){
flag = false;
list.add(each);
each="";
}
else{
if(flag) each+=c;
}
}
Collections.sort(list, (String a, String b) -> a.length() - b.length()); // 1
Set<Integer> set = new LinkedHashSet<>();
for(String l : list){
for(String num : l.split(",")){
set.add(Integer.parseInt(num)); // 2
}
}
int[] answer = new int[set.size()];
int i=0;
for(int x : set){ // 3
answer[i++] = x;
}
return answer;
}
}
'ALGORITHM' 카테고리의 다른 글
[TIL] 2일차 - 백준 1946 신입사원 (1) | 2024.03.29 |
---|---|
[JAVA] 프로그래머스 - [3차]n진수 게임 (0) | 2023.03.18 |
[JAVA] 프로그래머스 - 개인정보 수집 유효기간 (0) | 2023.03.01 |
[MySQL] 프로그래머스 - 루시와 엘라 찾기(IN) (0) | 2023.02.08 |
[JAVA] 백준 1922 - 네트워크 연결 (0) | 2023.02.07 |