https://school.programmers.co.kr/learn/courses/30/lessons/12933
JS
문제
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
계획
n을 문자배열로 만들기
문자열-> 숫자열
큰 순서대로 배열
새로운 정수 반환
참고, 풀이
split(), map()
// 정수 -> 문자열로 변경
const str = String(num);
// element를 문자열에서 정수로 변경
const mapfn = (arg) => Number(arg)
// 문자열 -> 배열로 변경
const newArr = str.split('').map(mapfn)
숫자 내림차순 정렬
const arr = [2, 1, 3, 10];
arr.sort(function(a, b) {
return b - a;
});
document.writeln(arr + '<br>'); // [10, 3, 2, 1]
숫자 배열을 문자(숫자) 바꾸기
r_list.join('')
// [1,2,3,4,5].join('') = '12345'
답
function solution(n) {
// 정수 -> 문자열로 변경
const str = String(n);
// element를 문자열에서 정수로 변경
const mapfn = (arg) => Number(arg)
// 문자열 -> 배열로 변경
const newArr = str.split('').map(mapfn)
// 숫자 내림차순 정렬
newArr.sort((a, b) => b - a);
// 배열을 정수로 만들어 반환
return Number(newArr.join(''));
}
코드 간략화하기
function solution(n) {
return +([...String(n)].sort((a, b) => b - a).join(''));
}
정수 -> 문자열 : [...String(n)]
내림차순 정렬 : 배열.sort((a, b) => b - a)
문자배열을 정수로 : +(배열..join(''))
출처
숫자 -> 문자열 : https://hianna.tistory.com/707
정수 -> 정수배열 : https://velog.io/@woody_/JS-%EC%88%AB%EC%9E%90%EB%A5%BC-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%B3%80%EA%B2%BD
정렬 : https://hianna.tistory.com/409
배열 합치기: https://hianna.tistory.com/397
숫자 배열을 문자(숫자) 바꾸기 : https://velog.io/@dkwnrmsidkd/%EC%88%AB%EC%9E%90%EC%9D%98-%ED%95%A9-%EA%B5%AC%ED%95%98%EA%B8%B0
arr.sort((a, b) => b - a); : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
◆ C
◆ C
계획
참고, 풀이
답
//
코드 간략화하기
출처
◆ C#
◆ C#
계획
참고, 풀이
답
//
코드 간략화하기
출처
◆ C++
◆ C++
계획
참고, 풀이
답
//
코드 간략화하기
출처
'내일배움 과제 > 기타 과제' 카테고리의 다른 글
알고리즘 22번 두 정수 사이의 합 (0) | 2024.11.27 |
---|---|
알고리즘 21번 - 추가공부 (0) | 2024.11.26 |
알고리즘 19번 - 추가공부 (0) | 2024.11.22 |
알고리즘 18번 - 추가공부 (0) | 2024.11.21 |
스텐다드 24.11.19 과제 (0) | 2024.11.20 |