문제가 복잡하게 쓰여있는데 차근히 읽어보니 어렵지 않았다.
풀이 방법은 바로 보이는데 String으로 넘어오는 s를 어떻게 배열로 변환할지 생각하는데 시간을 많이 썼다.
최종 코드
import java.util.*;
class Solution {
public int[] solution(String s) {
int[] answer = {};
// s의 맨 앞 {{ 부분 자르기
s = s.substring(2, s.length());
// s의 맨 뒤 }} 부분 자르고 },{ 부분 -로 변경
s = s.substring(0, s.length()-2).replace("},{", "-");
// -을 기준으로 자르기
String[] temp = s.split("-");
// 람다를 이용해서 길이별로 정렬
Arrays.sort(temp, (a,b) -> (a.length()-b.length()));
// 튜플을 위한 리스트 생성
List<Integer> list = new ArrayList<>();
for(String a : temp) {
// ,을 기준으로 다시 나누기
String[] temp2 = a.split(",");
for (int i = 0; i < temp2.length; i++) {
int n = Integer.parseInt(temp2[i]);
// 튜플에 값이 없다면
if(!list.contains(n)) {
list.add(n);
}
}
}
answer = list.stream().mapToInt(i -> i).toArray();
return answer;
}
}
'코딩 테스트' 카테고리의 다른 글
(Java) 프로그래머스 프린터 (0) | 2022.01.16 |
---|---|
(Java) 프로그래머스 전화번호 목록 (0) | 2022.01.16 |
(Java) 프로그래머스 H-Index (0) | 2021.12.20 |
(Java) 프로그래머스 가장 큰 정사각형 찾기 (0) | 2021.12.20 |
(Java) 프로그래머스 땅따먹기 (0) | 2021.12.15 |