[JavaScript] 프로그래머스 Lv2 가장 큰 수

김민수·2023년 9월 26일

프로그래머스

목록 보기
5/7
post-thumbnail

📝 [Lv2 가장 큰 수]

입력

0 또는 양의 정수

제한

numbers의 길이는 1 이상 100,000 이하
numbers의 원소는 0 이상 1,000 이하
정답이 너무 클 수 있으니 문자열로 바꾸어 return

출력

순서를 재배치하여 만들 수 있는 가장 큰 수

풀이

function solution(numbers) {

  let arr = Array.from({length: 10}, () => []);

  numbers.forEach(e => arr[(e+'')[0]].push(e));

  let val = '';
  arr.reverse().map(e => {
    val += e.sort((a,b) => (b+''+a) - (a+''+b)).join('');
  })

  return parseInt(val) === 0 ? '0' : val;
}

설명

  1. 0 ~ 9 까지의 배열 생성 및, numbers의 첫 값에 맞춰 배열에 담기
  2. numbers각 배열들을 sort를 진행하되, number이 아닌, string 상태에서 a + b 와 b - a 를 비교하여 정렬 하여 val에 추가 저장한다.

0개의 댓글