풀이
- 문자열을
},{
을 기준으로 쪼갬 - 길이순으로 정렬
- 짧은 것부터 앞에 포함되지 않은 숫자를 찾음
비고
str.split("\\},\\{")
- 물음표, 별, 더하기, 괄호 등은 메타문자로 사용되기 때문에 반드시 이스케이프 처리해줘야 함
더보기
package KakaoIntern2019.P64065_튜플;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class Solution {
static public int[] solution(String s) {
int[] answer = {};
s = s.replace("{{", "");
s = s.replace("}}", "");
String[] tuple = s.split("\\},\\{");
Arrays.sort(tuple, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
});
answer = new int[tuple.length];
Set<Integer> set = new HashSet<>();
StringTokenizer st = null;
for (int i = 0; i < tuple.length; i++) {
st = new StringTokenizer(tuple[i], ",");
while (st.hasMoreTokens()) {
int cur = Integer.parseInt(st.nextToken());
if (set.contains(cur))
continue;
answer[i] = cur;
set.add(cur);
}
}
return answer;
}
public static void main(String[] args) {
int[] a1 = solution("{{2},{2,1},{2,1,3},{2,1,3,4}}");
for (int i : a1) {
System.out.print(i + " ");
}
System.out.println();
}
}
'알고리즘왕 > Programmers' 카테고리의 다른 글
[프로그래머스/JAVA] 징검다리 건너기 (0) | 2021.05.04 |
---|---|
[프로그래머스/JAVA] 호텔방배정 (0) | 2021.05.04 |
[프로그래머스/JAVA] 보석쇼핑 (0) | 2021.05.04 |
[프로그래머스/JAVA] 수식 최대화 (0) | 2021.05.04 |
[프로그래머스/JAVA] 키패드 누르기 (0) | 2021.05.04 |