언젠가는 펼쳐 볼 아카이브
[Programmers] 가장 큰 수 본문
사용 언어 : javascript
lv.2
문제 풀이 소요 시간 : 42분 21초
타입 : 정렬
#문제
#제출코드
function solution(numbers) {
let answer = numbers
.map((item) => item + '')
.sort((a, b) => (b + a) * 1 - (a + b) * 1)
.join('');
return answer[0] === '0' ? '0' : answer;
}
sort로 비교하면서 풀어가면 되는 문제였다.
처음엔 for문으로 하나하나 비교해가며 작성했었는데.. 생각해보니 JS에는 sort()라는 멋진 함수가 있었다.
sort를 이용하니 단번에 코드가 줄어들었다.
완벽한 줄 알았는데! 테스트 케이스 하나가 자꾸 틀리는거다. 생각해봤더니 "0000"일 경우에 그대로 "0000"을 리턴해주는 게 문제였다. 마지막 return 문에서 답이 "0000" 일 경우 "0"만 반환하도록 검사해주는 것까지 체크해서 문제 풀이 완료!