function solution(X, Y) {
arrX = X.split('')
arrY = Y.split('')
answer = '';
for (let i=0; i<10; i++) {
count_i_from_X = arrX.filter(number => parseInt(number) === i).length; // i인 숫자의 갯수 추출
count_i_from_Y = arrY.filter(number => parseInt(number) === i).length;
const count = Math.min(count_i_from_X, count_i_from_Y) // 더 작은 값(공통갯수) 찾기
answer += String(i).repeat(count); // 문자열 i('1', '2' ,,,)을 count만큼 반복해서 answer에 추가
}
if(answer === ''){
return '-1'
}
else if(parseInt(answer) === 0){
return "0"
}
else{
return answer.split('').sort((a,b) => Number(b) - Number(a)).join('') // 0~9로 구성된 answer을 내림차순 정렬하여 문자열로 재구성
}
}
타임아웃 잡는데 고생 좀 많이 함
include() 메서드는 그 안에서 루프가 돌음 -> for문을 2번 쓰는 것과 같은 느낌
filter()을 사용
for (let i=0; i<10; i++) {
if(X.includes(i) && Y.includes(i)){
~~~
}
}
// 안쪽에 for문이 2번 동작하는 것과 같기 때문에 시간을 더 잡아먹는다
// filter 함수를 바로 사용해서 갯수를 바로 리턴하면 시간을 줄일 수 있음