언젠가는 펼쳐 볼 아카이브

[Programmers] 가장 큰 수 본문

카테고리 없음

[Programmers] 가장 큰 수

개발자희망생고롸파덕 2024. 3. 18. 16:51

사용 언어 : 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"만 반환하도록 검사해주는 것까지 체크해서 문제 풀이 완료!