두 수 X와 Y에서 공통으로 나타나는 숫자들을 이용하여 만들 수 있는 가장 큰 수를 찾아야 하는 문제이다.
public class Solution {
public String solution(String X, String Y) {
int[] countX = new int[10];
int[] countY = new int[10];
// X에서 각 숫자의 개수 세기
for (char c : X.toCharArray()) {
countX[c - '0']++;
}
// Y에서 각 숫자의 개수 세기
for (char c : Y.toCharArray()) {
countY[c - '0']++;
}
StringBuilder sb = new StringBuilder();
// 숫자 9부터 0까지 반복
for (int i = 9; i >= 0; i--) {
int minCount = Math.min(countX[i], countY[i]); // 짝지을 수 있는 최대 횟수
for (int j = 0; j < minCount; j++) {
sb.append(i);
}
}
if (sb.length() == 0) {
return "-1"; // 짝꿍이 없는 경우
}
if (sb.charAt(0) == '0') {
return "0"; // 결과가 0으로만 구성된 경우
}
return sb.toString();
}
}
Math.min(countX[i], countY[i])
를 사용하여 짝지을 수 있는 최대 횟수를 계산