#나의 풀이
function solution(n) {
var answer = String(n).split("").map(e => Number(e)).sort((x, y) => y - x).join("");
answer = Number(answer)
return answer;
}
#다른 방법
function solution(n) {
const newN = n + "";
const newArr = newN
.split("")
.sort()
.reverse()
.join("");
return +newArr;
}
숫자풀이
function solution(n) {
// 숫자풀이
var r = 0, e = 0, arr = [];
do {
e = n%10;
// 정렬
if (arr.length == 0) arr.push(e);
else for (var i=0, len=arr.length; i<len; i++) {
if (arr[i] <= e) { arr.splice(i,0,e); break; }
if (i == len-1) arr.push(e);
}
} while (n = Math.floor(n/10), n>0);
return parseInt(arr.join(""));
}
- *다른 풀이는 문자열로 변환 후 풀이가 많고 거의 비슷하다.
- *숫자풀이는 문제를 보고 생각해 볼 때 문자열 풀이보다 좀 복잡할 것 같아서 생각해 보지 않았는데 구현한 코드가 있어서 참고차 적어보았다. (런타임은 오히려 문자열이 조금 더 빠른 것 같다.)
'코딩테스트 > Javascript' 카테고리의 다른 글
프로그래머스 스킬체크 레벨 1 (0) | 2021.05.13 |
---|---|
최대공약수와 최소공배수 (0) | 2021.03.08 |
자릿수 더하기 (0) | 2021.01.24 |
자연수 뒤집어 배열로 만들기 (0) | 2021.01.23 |
이상한 문자 만들기 (0) | 2021.01.18 |