비교하는 방법
정렬할 때,
두 수를 연결했을 때, 더 큰 수가 나오는 순서로 정렬을 한다.
[초기 코드]
function solution(numbers) {
var answer = '';
numbers = numbers.map(e => String(e));
numbers.sort((a, b) => {
if (a+b > b+a) {
return -1;
} else if (a+b < b+a) {
return 1;
}
})
numbers.map(e => answer += e);
return answer;
}
ㅊ
function solution(numbers) {
var answer = '';
numbers = numbers.map(e => String(e));
numbers.sort((a, b) => {
if (a+b > b+a) {
return -1;
} else if (a+b < b+a) {
return 1;
}
})
numbers.map(e => answer += e);
if (Number(answer) === 0) {
answer = '0';
}
return answer;
}
ES6의 리터럴 방식으로 숫자를 연결하여 비교한 뒤,
join으로 연결해준다.
맨 앞에 숫자가 0인 경우는 숫자가 0밖에 없는 경우이다.
0이 한번일 수도, 여러 번 반복되어 있을 수도 있다.
test case로는 [0, 0, 0, 0, 0]의 답이 0이 되어야 하는데 00000이 아닌지 확인해본다.
[최종코드]
function solution(numbers) {
var answer = '';
answer = numbers.sort((a, b) => `${b}${a}` - `${a}${b}`).join('');
return answer[0] === '0' ? '0' : answer;
}
'프로그래머스 > JavaScript' 카테고리의 다른 글
[프로그래머스 JavaScript] Level2 다리를 지나는 트럭 (0) | 2020.07.17 |
---|---|
[프로그래머스 JavaScript] Level1 K번째수 (0) | 2020.06.17 |
[프로그래머스 JavaScript] Level2 H-Index (0) | 2020.06.16 |
[프로그래머스 JavaScript] Level2 탑 (0) | 2020.06.15 |
[프로그래머스 JavaScript] Level1 [1차] 비밀지도 (0) | 2020.06.11 |