함수 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
반응형
'부트캠프 개발일지 2023-2024 > Algorithm 알고리즘' 카테고리의 다른 글
[Programmers] 알고리즘: 서울에서 김서방 찾기 (1) | 2023.11.27 |
---|---|
[Programmers] 알고리즘 : 하샤드의 수 (0) | 2023.11.23 |
[Programmers] 알고리즘 : 자연수 뒤집어 배열로 만들기 (0) | 2023.11.16 |
[Programmers] 알고리즘 : x만큼 간격이 있는 n개의 숫자 (0) | 2023.11.15 |
[Programmers] 알고리즘 : 자릿수 더하기 (1) | 2023.11.13 |