코딩테스트/Javascript
정수 내림차순으로 배치하기
JWOOKJ
2021. 1. 31. 10:18
#나의 풀이
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(""));
}
- *다른 풀이는 문자열로 변환 후 풀이가 많고 거의 비슷하다.
- *숫자풀이는 문제를 보고 생각해 볼 때 문자열 풀이보다 좀 복잡할 것 같아서 생각해 보지 않았는데 구현한 코드가 있어서 참고차 적어보았다. (런타임은 오히려 문자열이 조금 더 빠른 것 같다.)