728x90
문제설명
- 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력예
- 118372 => 873211
나의 답
function solution(n) {
var answer = [];
answer = n.toString().split('').map(Number)
for(var i=0; i<answer.length; i++){
for(var j=i+1; j<answer.length; j++){
if(answer[i] < answer[j]){
[answer[i],answer[j]] = [answer[j],answer[i]]
}
}
}
return Number(answer.join(''));
}
이런식의 문제가 나올때마다 sort를 사용해서 다른 방식으로 해보았따₩!~!
배열 정수로 만든 뒤 반복문을 이용해서 하나씩 정렬해나가는 방식
구조분해 할당으로 작은수와 큰수 위치를 바꿔 수가 크면 앞으로 switch 되게 바꾸었따
다른사람들 답
function solution(n) {
const newN = n + "";
const newArr = newN
.split("")
.sort()
.reverse()
.join("");
return +newArr;
}
문자열로 sort 함수를 사용한거 같다
확실히 보기는 함수를 이용해서 하는게 편하긴 한듯 하다
728x90
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스 js] 콜라츠 추측 (0) | 2023.10.27 |
---|---|
[프로그래머스 js] 두 정수 사이의 합 (0) | 2023.10.27 |
[프로그래머스 js] 문자열내 p와 y 개수 (2) | 2023.10.23 |
[프로그래머스 js] 문자열 정수로 바꾸기 (1) | 2023.10.22 |
[프로그래머스 js] 최댓값만들기(2) (1) | 2023.10.04 |