1. 문제
https://programmers.co.kr/learn/courses/30/lessons/64065?language=java
코딩테스트 연습 - 튜플
"{{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
2. 나의 풀이
import java.util.*;
class Solution {
public ArrayList<Integer> solution(String s) {
ArrayList<Integer> answer = new ArrayList<Integer>();
ArrayList<String> arr = new ArrayList<>();
String str = "";
for(int i = 2; i < s.length(); i = i + 1) {
if(s.substring(i, i + 1).equals("}")) {
arr.add(str);
str = "";
i = i + 2;
continue;
}
str += s.substring(i, i + 1);
//System.out.println("arr : " + arr);
}
//System.out.println("arr(정렬 전) : " + arr);
Comparator<String> c = new Comparator<String>() {
public int compare(String o1, String o2) {
return Integer.compare(o1.length(), o2.length());
}
};
Collections.sort(arr, c);
//System.out.println("arr(정렬 후) : " + arr);
for(int i = 0; i < arr.size(); i = i + 1) {
String [] imsi = arr.get(i).split(",");
for(int j = 0; j < imsi.length; j = j + 1) {
if(!answer.contains(Integer.parseInt(imsi[j]))) {
answer.add(Integer.parseInt(imsi[j]));
}
}
}
return answer;
}
}
3. 다른 사람 풀이
import java.util.*;
class Solution {
public int[] solution(String s) {
Set<String> set = new HashSet<>();
String[] arr = s.replaceAll("[{]", " ").replaceAll("[}]", " ").trim().split(" , ");
Arrays.sort(arr, (a, b)->{return a.length() - b.length();});
int[] answer = new int[arr.length];
int idx = 0;
for(String s1 : arr) {
for(String s2 : s1.split(",")) {
if(set.add(s2)) answer[idx++] = Integer.parseInt(s2);
}
}
return answer;
}
}
'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
(Java)프로그래머스 코딩테스트 연습 - 2017 팁스타운 - 짝지어 제거하기 (0) | 2020.12.13 |
---|---|
(Java)프로그래머스 코딩테스트 연습 - 연습문제 - JadenCase 문자열 만들기 (0) | 2020.12.13 |
(Java)프로그래머스 코딩테스트 연습 - 연습문제 - 가장 큰 정사각형 찾기 (0) | 2020.12.11 |
(Java)프로그래머스 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - [3차] n진수 게임 (0) | 2020.12.09 |
(Java)프로그래머스 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - [3차] 파일명 정렬 (0) | 2020.12.09 |