function solution(X, Y) {
let answer = '';
// X와 Y 문자열을 각각 배열로 변환
X = X.split("");
Y = Y.split("");
// 0부터 9까지의 숫자에 대해 반복
for (let i = 0; i < 10; i++) {
// X 배열 안의 숫자 i의 개수
const x = X.filter(a => Number(a) === i).length;
// Y 배열 안의 숫자 i의 개수
const y = Y.filter(a => Number(a) === i).length;
// x와 y 중 작은 값을 선택하여 숫자 i를 그만큼 반복하여 answer에 추가
answer += String(i).repeat(Math.min(x, y));
}
// 만약 answer가 빈 문자열이면 공통된 숫자가 없는 경우이므로 "-1"을 반환
if (answer === '') return "-1";
// answer가 "0"인 경우에는 "0"을 반환
if (Number(answer) === 0) return "0";
// answer를 내림차순으로 정렬하여 가장 큰 숫자를 반환
return answer.split("").sort((a, b) => Number(b) - Number(a)).join("");
}