https://programmers.co.kr/learn/courses/30/lessons/42746
고민하다가 사람들의 질문에서 힌트를 얻어서 푼 문제이다.
핵심은 내림차순 정렬 시 배열의 두 수를 붙여서 비교하는 것이다.
막상 엄청 간단한 아이디어인데 막상 생각해내기가 어려웠다.
function solution(numbers) {
var answer = '';
// 숫자를 문자열로 바꾼다.
numbers = numbers.map(e=>String(e));
if (numbers.every(e => e === '0')) return '0';
// 9, 8 => 98,89
// 9, 90 => 909, 990
// 30, 3024 => 303024, 302430
// 10, 1000 => 101000, 100010
numbers.sort((a,b)=>{
// 두 수를 붙여서 비교한다.
let c1 = Number(a+b);
let c2 = Number(b+a);
return c2 - c1;
})
answer = numbers.join('');
return answer;
}