Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 온라인계약
- 전자계약솔루션
- 아이폰13
- 전자계약
- 모두싸인마케팅
- 갤럭시노트20
- 아이폰
- 아주작은습관의힘
- 좋은습관
- 블록체인
- 모두싸인마케터
- 독후감
- 전자계약시스템
- 아이폰12
- 모두의사인
- 옥소폴리틱스
- 습관
- map
- 모두싸인
- 자바스크립트
- 자릿수더하기
- 알고리즘
- 모두사인
- 독서리뷰
- atomichabits
- javascript
- 전자계약서
- 전자계약서비스
- 코딩테스트
- 마케팅
Archives
- Today
- Total
찰리의 이야기
Javascript 정수 내림차순으로 배치하기 본문
반응형
Javascript 정수 내림차순으로 배치하기
문제: 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
nreturn
118372 | 873211 |
주어진 코드 ↓
function solution(n) {
var answer = 0;
return answer;
}
처음 문제를 접했을 때 내장 메서드를 활용할 생각을 안했어서
많이 헤메었는데, 메서드 쪽으로 접근하니 간단하게 처리가 가능했습니다.
function solution(n) {
return Number(n.toString().split("").sort((a, b)=> b - a).join(""));
}
제가 작성했지만 너무 명쾌해서 기분이 좋아집니다.
일단 파라미터로 입력받은 n을 문자열로 변경시킨 다음 split("")으로 배열로 변경시킨 다음
sort()를 이용해서 내림차순으로 순서를 바꾸었습니다.
그리고 배열을 다시 join("")으로 문자열로 바꾸어주고,
Number()생성자로 숫자로 만들어주었습니다.
여기까지가 제 풀이 방법이고
다른 풀이법도 살펴보았습니다.
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(""));
}
splice() 메서드를 이용해서 배열에 요소를 컨트롤하는게 핵심인 것 같습니다.
splice(시작인덱스, 제거 개수, 추가 요소) 를 통해서
배열을 컨트롤 할 수 있다는 점을 고민해보면 좋겠습니다.
Javascript 정수 내림차순으로 배치하기
반응형
'찰리: 코딩 연습' 카테고리의 다른 글
Javascript 자릿수 더하기 (0) | 2021.09.14 |
---|---|
Javacsript 자연수 뒤집어 배열로 만들기 (0) | 2021.09.14 |
Javascript 정수 제곱근 판별 (0) | 2021.09.12 |
Javascript 제일 작은 수 제거하기 (0) | 2021.09.12 |
Javascript 최대공약수와 최소공배수 (0) | 2021.09.10 |
Comments