본문 바로가기
부트캠프 개발일지 2023-2024/Algorithm 알고리즘

[Programmers] : 알고리즘 : 정수 내림차순으로 배치하기

by whereanna00 2023. 11. 22.
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

 


Approach

  •  정수를 문자열화 String, toString // n = 132 -> n = '132'
  • 각 자리 숫자를 모두 찢어놓아 배열로 구성 split('') // n = ['1', '3', '2']
  • 숫자화 map(Number) // n = [1, 3, 2]
  • sort 내림차순으로
  • 배열 요소를 문자열로 합치기 // n = '321'
  • 숫자화

function solution(n) {
    const answer = String(n).split('').map((item)=>Number(item))
    .sort((a,b)=>b-a)
    .join('');
    
    return +answer;
}
function solution(n) {
    const answer = String(n).split('').map(Number)
    .sort((a,b)=>b-a)
    .join('');
    
    return +answer;
}

 

Insight

  • sort는 배열의 요소가 숫자던 문자열이던(숫자형태의 문자열 '1') sort 재정렬을 해준다. (숫자형 문자열 정렬시, 예상과 다른 결과가 나올 수 도 있어 사용을 지양)
  • join은 배열의 요소가 숫자던 문자열이던 그것을 하나씩 추출해 하나의 문자열로 만든다.
  • map(Number) 는 map((item)=>Number(item)) 와 같다
728x90
반응형