728x90
코딩 테스트 풀이 체크리스트 |
|
2시간 내에 풀었는가? | O |
본인의 실력으로 풀었는가? | O |
코딩테스트 연습 - 튜플
"{{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
import java.util.*;
class Solution {
public int[] solution(String s) {
ArrayList<Integer> answer = new ArrayList<>();
//제일 앞의 {{와 맨 뒤의 }}를 제외하고 },{로 구분
String[] list = s.substring(2, s.length()-2).split("\\},\\{");
//몇 개의 숫자로 구성되어 있는지 해당 길이로 오름차순 정렬
Arrays.sort(list, new Comparator<String>(){
@Override
public int compare(String s1, String s2) {
String[] a1 = s1.split(",");
String[] a2 = s2.split(",");
return a1.length - a2.length;
}
});
//하나씩 돌려가면서 만약에 answer에 이미 담긴 숫자면 넘어가고 아니면 추가
for (int i = 0; i < list.length; i++) {
String[] temp = list[i].split(",");
for (int j = 0; j < temp.length; j++) {
int num = Integer.parseInt(temp[j]);
if (answer.indexOf(num) == -1) answer.add(num);
}
}
//int[]로 변환 후 리턴
return answer.stream().mapToInt(Integer::intValue).toArray();
}
}
테스트 1 〉 | 통과 (3.40ms, 74.5MB) |
테스트 2 〉 | 통과 (8.10ms, 75.2MB) |
테스트 3 〉 | 통과 (3.30ms, 73.6MB) |
테스트 4 〉 | 통과 (3.10ms, 74.5MB) |
테스트 5 〉 | 통과 (11.48ms, 76.3MB) |
테스트 6 〉 | 통과 (12.07ms, 85.7MB) |
테스트 7 〉 | 통과 (41.08ms, 98.7MB) |
테스트 8 〉 | 통과 (151.94ms, 133MB) |
테스트 9 〉 | 통과 (62.32ms, 113MB) |
테스트 10 〉 | 통과 (120.71ms, 147MB) |
테스트 11 〉 | 통과 (150.36ms, 138MB) |
테스트 12 〉 | 통과 (271.85ms, 160MB) |
테스트 13 〉 | 통과 (177.02ms, 149MB) |
테스트 14 〉 | 통과 (239.11ms, 162MB) |
테스트 15 〉 | 통과 (3.18ms, 79.1MB) |
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 - 전화번호 목록 (2단계) (0) | 2022.05.11 |
---|---|
[Java] 프로그래머스 - 리틀 프렌즈 사천성 (3단계) (0) | 2022.05.10 |
[Java] 프로그래머스 - 수식 최대화 (2단계) (0) | 2022.05.02 |
[Java] 프로그래머스 - 거리두기 확인하기 (2단계) (0) | 2022.04.29 |
[Java] 프로그래머스 - 1차 뉴스 클러스터링 (2단계) (0) | 2022.04.29 |