-
안녕하세요. 오늘은 자바스크립트 알고리즘 정수 내림차순으로 배치하기 를 풀어보았습니다.
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
문제 풀이
function solution(n) { return parseInt(String(n).split('').sort(function(a, b){return b - a;}).join('')); }; // 아래 코드는 테스트 코드입니다. console.log(solution(13579));
저의 풀이입니다.
우선 매개변수 n을 String()을 사용해서 문자열로 바꿔주고 split('')으로 배열로 만들어줍니다.
그 후 sort(function(a, b){return b - a;}) 로 문자열 배열을 내림차순으로 정렬해주고,
join() 으로 배열을 하나의 문자열로 만들어줍니다.
그리고 그 값을 parseInt()를 이용하여 정수로 만들어 주면서 풀었습니다.
마지막으로 다른 사람들의 풀이도 보면서 글 마치겠습니다.
다른 사람들의 풀이
function solution(n) { // 문자풀이 // return parseInt((n+"").split("").sort().reverse().join("")); // 숫자풀이 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("")); }
'코딩 기록 > 자바스크립트 알고리즘' 카테고리의 다른 글
(자바스크립트 알고리즘) 서울에서 김서방 찾기 - kimyang-sun (0) 2019.12.18 (자바스크립트 알고리즘) 문자열 내림차순으로 배치하기 - kimyang-sun (0) 2019.12.17 (자바스크립트 알고리즘) 핸드폰 번호 가리기 - kimyang-sun (0) 2019.12.15 (자바스크립트 알고리즘) 가운데 글자 가져오기 - kimyang-sun (0) 2019.12.14 (자바스크립트 알고리즘) 두 정수 사이의 합 - kimyang-sun (0) 2019.12.13 댓글