https://school.programmers.co.kr/learn/courses/30/lessons/12933
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
118372 | 873211 |
나의 문제 풀이
n = 118372 일때,
입력 받은 숫자를 string으로 변환하여 split()하면 ["1", "1", "8", "3", "7", "2"]가 된다.
이때 sort()를 b-a로 지정하여 내림차순으로 정렬시켰다.
마지막에 join()을 사용하여 배열로 되어있던것들을 합쳐준뒤 parseInt()로 형변환을 시켜준뒤 return 했다.
function solution(n) {
return parseInt(n.toString().split("").sort((a,b) => b - a).join(""));
}
다른 풀이
코드 길이도 나보다 간결하고 runtime도 조금더 효율적이다.
나는 sort()에서 b-a를 설정해줬다면 이 코드에서는 sort()를 해준뒤 reverse()를 사용하여 내림차순으로 정렬해주었다.
newArr 앞에 +를 붙여줌으로써 int형으로 return했다.
function solution(n) {
const newN = n + "";
const newArr = newN.split("").sort().reverse().join("");
return +newArr;
}
다른 풀이
function solution(n) {
return Number((n+"").split("").sort((a,b) => b-a).join(""));
}
'코딩 문제 > 프로그래머스 [ JavaScript ]' 카테고리의 다른 글
[ 프로그래머스 / JavaScript ] 최댓값과 최솟값 (0) | 2022.09.20 |
---|---|
[ 프로그래머스 / JavaScript ] 평균 구하기 (0) | 2022.09.20 |
[ 프로그래머스 / JavaScript ] 자릿수 더하기 (0) | 2022.09.19 |
[ 프로그래머스 / JavaScript ] 짝수와 홀수 (0) | 2022.09.19 |
[ 프로그래머스 / JavaScript ] 같은 숫자는 싫어 (0) | 2022.09.19 |
댓글