Lv.2 가장 큰 수

·2022년 4월 4일
0

프로그래머스

목록 보기
4/18

문제 설명

풀이 과정

어떻게 정렬할지 고민하는 문제다.
"두 숫자를 붙여서 비교"하고 정렬하면 된다.

예) 6, 10, 2
=> 6과 10을 비교할 때 : 610 > 106 이므로 6, 10
=> 6과 2를 비교할 때 : 62 > 26 이므로 6, 2
=> 10과 2를 비교할 때 : 210 > 102 이므로 2, 10

따라서 6, 2, 10으로 정렬하면 된다.

두 숫자를 붙이는 방법은 숫자들을 문자열화해서 더하면 된다.

  • 특별 예외로 [0,0,0,0,0,0]과 같은 배열이 주어지면 return값이 "000000"이 된다.
    따라서 이럴 경우엔 "0"을 return하도록 예외 처리한다.

코드 구현(JavaScript)

function solution(numbers) {
  numbers = numbers.map(String);
  numbers.sort((a, b) => a + b > b + a ? -1 : 1);
  const answer = numbers.join("");
  return answer < 1 ? "0" : answer;
}

출처: 프로그래머스

profile
모르는 것 투성이

0개의 댓글