반응형
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
nreturn
118372 |
나의 답
각 수를 배열로
['5','4','3','2','1'] 만들고 sort로 정렬 한 뒤 엄청 고민했다.
reduce를 사용해서 문자열을 그대로 붙여주고 맨 앞에 + 로 숫자로 바꿔줫다.
다른 분들의 풀이
문제 엄청 고민하면서 split처럼 무언가로 배열을 합치는 기능이 없나 생각했는데 요기 쓰인 .join() 이 그 기능을 하는걸 알게되었다.
숫자를 요소 하나하나 string 배열로 담는 2가지 방법
123+''.split('') == Array.from(123+'')
console.log((123+'').split(''), ' = ', Array.from(123+''))
<- 참고 + join('') 기능 추가해서 다시 만들어 보기
function solution(n) {
return +(n+'').split('').sort().reverse().join('')
}
요렇게 더 깔끔하게도 가능!
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스 코딩테스트 JavaScript] Level 1-23 수박수박수박수박수박수 (0) | 2021.05.23 |
---|---|
[프로그래머스 코딩테스트 JavaScript] Level 1-22 문자열 내림차순으로 배치하기 (0) | 2021.05.23 |
[프로그래머스 코딩테스트 JavaScript] Level 1-20 나누어 떨어지는 숫자 배열 (0) | 2021.05.20 |
[프로그래머스 코딩테스트 JavaScript] Level 1-19 약수의 합 (0) | 2021.05.20 |
[프로그래머스 코딩테스트 JavaScript] Level 1-18 문자열 내 p와 y의 개수 (0) | 2021.05.20 |