[프로그래머스] 튜플
2020. 4. 12. 18:33ㆍ프로그래머스/카카오
import java.util.*;
class Solution {
public int[] solution(String s) {
int[] answer = {};
s = s.substring(2);
String[] tup = s.split("}");
List<String> list = new ArrayList<>();
List<Integer> answerList = new ArrayList<>();
for(int i=0; i<tup.length; i++){
String addList="";
for(int j=0; j<tup[i].length(); j++){
if(Character.isDigit(tup[i].charAt(j))){
addList = tup[i].substring(j);
break;
}
}
list.add(addList);
}
Collections.sort(list,new Comparator<String>(){
public int compare(String s1, String s2){
int num1 =1;
int num2 =1;
for(int i=0; i<s1.length(); i++){
if(s1.charAt(i)==','){
num1++;
}
}
for(int i=0; i<s2.length(); i++){
if(s2.charAt(i)==','){
num2++;
}
}
return num1-num2;
}
});
for(int i=0; i<list.size(); i++){
String[] sp = list.get(i).split(",");
for(int j=0; j<sp.length; j++){
if(!answerList.contains(Integer.parseInt(sp[j]))){
answerList.add(Integer.parseInt(sp[j]));
}
}
}
answer = new int[answerList.size()];
for(int i=0; i<answer.length; i++){
answer[i] = answerList.get(i);
}
return answer;
}
}
주어진 문자열을 튜플별로 나누고, 사이즈별로 정렬하고, 숫자로 바꾸어 저장한다음 중복을 피해서 추가하였다.
더 간단하게 나누는 방법을 생각해 봐야겠다.
import java.util.*;
class Solution {
public int[] solution(String s) {
int[] answer = {};
String[] extract = s.split("},");
List<Integer> answerNumber = new ArrayList<>();
for(int i=0; i<extract.length; i++){
extract[i] = extract[i].replace("{","");
extract[i] = extract[i].replace("}","");
}
Arrays.sort(extract, new Comparator<String>(){
public int compare(String s1, String s2){
return s1.length()-s2.length();
}
});
for (int i=0; i<extract.length; i++) {
String[] extractNumber = extract[i].split(",");
for(int j=0; j<extractNumber.length; j++){
if (!answerNumber.contains(Integer.parseInt(extractNumber[j]))) {
answerNumber.add(Integer.parseInt(extractNumber[j]));
}
}
}
answer = new int[answerNumber.size()];
for(int i=0; i<answer.length; i++){
answer[i] = answerNumber.get(i);
}
return answer;
}
}
두번째 풀이때는 replace를 통해 더욱 간단하게 숫자들로 분류 할 수 있었다.
정렬시에 기준을 ","를 포함한 문자열의 길이로 하였는데 통과가 된것은 개수가 적은 튜플을 개수가 많은 튜플이 포함한다는 특징 때문에 가능하였다.
'프로그래머스 > 카카오' 카테고리의 다른 글
[프로그래머스][3차] 방금그곡 (0) | 2020.04.14 |
---|---|
[프로그래머스][1차] 캐시 (0) | 2020.04.13 |
[프로그래머스][3차]파일명 정렬 (0) | 2020.04.09 |
[프로그래머스][3차][압축] (0) | 2020.04.09 |
[프로그래머스] n진수 게임 (0) | 2020.04.08 |