728x90
programmers.co.kr/learn/courses/30/lessons/64065
코딩테스트 연습 - 튜플
"{{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
우선 들어온 값인 s를 길이가 짧은 집합 순으로 2차원 배열의 형태로 가공해줬다
그리고 배열을 순회 하며 이전 배열에는 없던 요소를 return 값에 추가하는 방식으로 풀어냈다
import java.util.*;
class Solution {
public int[] solution(String s) {
s = s.substring(1,s.length()-1);
s= s.replace("{","");
String[] test = s.split("}");
Arrays.sort(test, new Comparator<String>(){
@Override
public int compare(String o1, String o2){
Integer a = o1.length();
Integer b = o2.length();
return a.compareTo(b);
}
});
String[][] numList = new String[test.length][];
for(int i =0;i<test.length;i++){
numList[i] = test[i].split(",");
Arrays.sort(numList[i]);
}
int[] answer = new int[test.length];
for(int i =0;i<numList.length;i++){
String temp = "";
for(int j =0;j<numList[i].length;j++){
if(!numList[i][j].equals("0")){
temp = numList[i][j];
}
}
for(int j=i+1;j<numList.length;j++){
for(int k = 0;k<numList[j].length;k++){
if(numList[j][k].equals(temp)){
numList[j][k] = "0";
}
}
}
answer[i] = Integer.parseInt(temp);
}
return answer;
}
}
728x90
'프로그래머스 코딩테스트 연습 > Level2' 카테고리의 다른 글
[프로그래머스][JAVA] 가장 큰 수 (0) | 2021.05.06 |
---|---|
[프로그래머스][JAVA] 전화번호 목록 (0) | 2021.05.06 |
[프로그래머스][JAVA] 카카오프렌즈 컬러링북 (0) | 2021.05.06 |
[프로그래머스][JAVA] 더 맵게 (0) | 2021.05.06 |
[프로그래머스][JAVA] 타겟 넘버 (0) | 2021.05.06 |