두 정수 X, Y가 주어졌을 때, X, Y의 짝꿍을 return하는 solution 함수를 작성하는 문제이다.
X, Y에 나오는 숫자의 빈도를 배열 x, y에 저장한다. 그리고 공통으로 나타나는 정수(빈도가 0이 아닌 수)를 큰 수부터 빈도수만큼 StringBuilder에 append한다.
class Solution {
public String solution(String X, String Y) {
String answer = "";
// 0~9까지 X에 나오는 숫자의 빈도를 저장할 배열 x
int[] x = new int[10];
for (int i = 0; i < X.length(); i++) {
x[X.charAt(i) - '0']++;
}
// 0~9까지 Y에 나오는 숫자의 빈도를 저장할 배열 y
int[] y = new int[10];
for (int i = 0; i < Y.length(); i++) {
y[Y.charAt(i) - '0']++;
}
// 공통으로 나타나는 정수를 사용해 짝꿍 만들기
StringBuilder sb = new StringBuilder();
for (int i = 9; i >= 0; i--) {
if(x[i] > 0 && y[i] > 0) {
if (x[i] < y[i]) {
for (int j = 0; j < x[i]; j++) {
sb.append(i + "");
}
} else {
for (int j = 0; j < y[i]; j++) {
sb.append(i + "");
}
}
}
}
answer = sb.toString();
// 짝꿍 예외처리
if ("".equals(answer)) {
answer = "-1";
} else if (answer.charAt(0) == '0') {
answer = "0";
}
return answer;
}
}