정수 내림차순으로 배치하기 | 프로그래머스
정수 내림차순으로 배치하기 (Lv.1)
문제
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 사항
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
---|---|
118372 | 873211 |
나의 풀이
Method Chaining
💡 메소드를 이어붙여 사용하는 테크닉을 Method Chaining이라고 한다.
function solution(num) {
let str = num + ''
return Number(str.split('').sort((a, b) => b - a).join(''));
}
console.log(solution(13913)); // 93311
console.log(solution(783211)); // 873211
console.log(solution(1769282)); // 9876221
각 자리를 나누어 배열을 받고, sort 메소드로 내림차순으로 재배치하여 다시 join한다. 인자를 가져올땐 문자열로 변환, 반환할땐 숫자로 바꿔주는 것이 번거롭다. (+2점)
sort 메소드는 문자열을 정렬하는 기능을 한다. 숫자 값의 크기가 아닌 유니코드 기준으로 정렬하기 때문에 숫자 배열에 사용한다면 별도의 코드를 사용해야 한다
다른 사람의 풀이
다른 풀이 (1)
function solution(n) {
const newN = n + "";
const newArr = newN
.split("")
.sort()
.reverse()
.join("");
return +newArr;
}
sort의 default는 오름차순이기 때문에 reverse를 사용하였다.
다른 풀이 (2)
function solution(n) {
// 문자풀이
return parseInt((n+"").split("").sort().reverse().join(""));
}
Number 대신 parseInt를 사용하여 숫자로 출력한다. parseInt란 문자열의 첫 부분으로부터 정수만 긁어오는 메소드이다. 주로 CSS의 숫자 뒤 px, em, rem 등을 제거하여 값만 추출할때 사용하면 좋다.
소수점까지 긁어오려면 parseFloat을 사용한다
Author And Source
이 문제에 관하여(정수 내림차순으로 배치하기 | 프로그래머스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@oneook/정수-내림차순으로-배치하기-프로그래머스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)