728x90
반응형
문제
https://www.acmicpc.net/problem/1427
1427번: 소트인사이드
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
코드
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim();
// 숫자를 문자열로 변환, 배열로 만들기
const digits = input.split('');
// 배열 정렬 (내림차순)
digits.sort((a, b) => b - a);
// 배열을 문자열로 다시 결합
const result = digits.join('');
console.log(result);
코드 설명
split('')을 사용하여 문자열을 한 문자씩 분리하여 배열로 만들어 준 뒤, sort((a, b) => b - a)을 사용하여 sort 함수 안에 비교 함수를 사용하여 자리수를 내림차순으로 정렬합니다.
마지막으로 join()를 사용하여 배열의 요소들을 하나의 문자열로 결합한 후 출력해줍니다.
문제 해설
이 문제는 주어진 수의 각 자리수를 내림차순으로 정렬하는 문제입니다.
주어진 숫자를 문자열로 변환한 후, 각 문자(숫자)를 배열로 만들어 정렬하고, 다시 문자열로 결합하는 방법을 사용하여 문제를 해결할 수 있습니다.
시간 복잡도
여기선 주로 sort() 함수에 의해 결정되어 일반적으로 O(n log n)가 됩니다.
여기서 n은 숫자의 자릿수입니다.
공간 복잡도
입력 숫자를 저장하고, 이를 문자 배열로 변환하는 데 필요한 공간은 O(n)이 됩니다.
728x90
반응형
'하루 알고리즘(JS)' 카테고리의 다른 글
[바미] 좌표 정렬하기 2 (0) | 2024.04.28 |
---|---|
[바미] 좌표 정렬하기 (0) | 2024.04.27 |
[바미] 수 정렬하기 2 (0) | 2024.04.25 |
[바미] 커트라인 (0) | 2024.04.24 |
[바미] 대표값 2 (0) | 2024.04.23 |