function solution(numbers) {
let answer = numbers
.sort((a,b) => (''+a+b) > (''+b+a) ? -1 : 1)
.join('')
if(answer*1 === 0) return '0';
return answer;
// return (answer*1)+''; <- 이건 왜 안되는 걸까?
/*
sort
앞의 요소와 뒤의 요소를 문자열로써 더했을 때
어느 순서로 더하는 것이 더 큰가를 따져서
앞 + 뒤 가 크다면 -1을 리턴해서 순서 유지
뒤 + 앞 이 더 크다면 1을 리턴해서 순서를 바꿈
배열이 여러개의 0으로만 이루어진 경우
"000" 이 아니라 "0" 으로 리턴 해줘야 해서
처음에는 주석처리된 리턴으로 했는데
제출시 11번 빼고 전부 틀림(원인 모름)
*/
}
0 또는 양의 정수가 주어졌을 때,
정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.
예를 들어, 주어진 정수가 [6, 10, 2]라면
[6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고,
이중 가장 큰 수는 6210입니다.
0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때,
순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어
return 하도록 solution 함수를 작성해주세요.
제한 사항
numbers의 길이는 1 이상 100,000 이하입니다.
numbers의 원소는 0 이상 1,000 이하입니다.
정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다.
numbers = [6, 10, 2]
return = "6210"
numbers = [3, 30, 34, 5, 9]
return = "9534330"