알고리즘/문제
개미수열
허정주
2022. 10. 28. 04:22
public static int solution(int n, int num) {
int answer = 0;
String[] s = String.valueOf(num).split("");
sort(s);
StringBuilder sb = new StringBuilder();
for(String ss : s) {
sb.append(ss);
}
String[] temp = sb.toString().split("");
for(int i = 0; i <= n; i++) {
if(i == n) {
String nnn = sb.toString();
answer = Integer.valueOf(nnn);
return answer % 10004;
}
s = sb.toString().split("");
sort(s);
sb = new StringBuilder();
for(String ss : s) {
sb.append(ss);
}
temp = sb.toString().split("");
String token = temp[0];
sb = new StringBuilder();
int cnt = 0;
for(int j = 0; j < temp.length; j++) {
if(token.equals(temp[j])){
cnt++;
} else {
sb.append(token+""+cnt);
token = temp[j];
cnt = 1;
}
}
if(cnt >= 1) {
sb.append(token + "" + cnt);
cnt = 1;
}
}
return answer;
}
public static String[] sort(String[] s) {
int[] ii = new int[s.length];
for(int i = 0; i < s.length; i++) {
ii[i] = Integer.valueOf(s[i]);
}
Arrays.sort(ii);
for(int i = 0; i < s.length; i++) {
s[i] = String.valueOf(ii[i]);
}
return s;
}