반응형
2750번 문제, 수 정렬하기
문제링크
문제설명
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N ( 1 <= N <= 1,000 )이 주어집니다. 둘째 줄부터 N개의 줄에는 수가 주어집니다. 이 수는 절댓값이 1,000보다 작거나 같은 정수입니다. 수는 중복되지 않습니다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력합니다.
입출력 예
예제 입력 | 예제 출력 |
5 5 2 3 4 1 |
1 2 3 4 5 |
해결 과정
1. fs 모듈로 입력 값을 받아 줄 바꿈을 기준 값으로 배열을 만들어 주었습니다.
2. 입력 값으로 만든 numbers 배열에서 shift 메서드로 첫 번째 요소를 추출하면서 제거해 주었습니다. 이로써 numbers 배열에는 정렬해주어야 하는 값만 남았습니다.
/* shift() 메서드는 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다. 이 메서드는 배열의 길이를 변하게 합니다. */
const array = [ 0, 3, 2, 1 ];
const first = array.shift();
console.log(first); // 0
console.log(array); // [ 3, 2, 1 ]
3. numbers 배열을 정렬해 주고 forEach로 순서대로 출력해 주었습니다.
const words = [ 'carrot', 'apple', 'banana' ];
const numbers = [ 5, 3, 4, 2, 1 ];
/* 문자 정렬: sort() 가능 */
console.log(words.sort()); // [ 'apple', 'banana', 'carrot' ]
/* 숫자 정렬: sort() 불가능 */
console.log(numbers.sort()); // [ 5, 3, 4, 2, 1 ]
console.log(numbers.sort((a, b) => a - b)); // [ 1, 2, 3, 4, 5 ]
제출 코드
const fs = require('fs');
const numbers = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const N = numbers.shift();
/* 출력 값 */
numbers.sort((a, b) => a - b).forEach(num => console.log(num));
또 다른 풀이
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
let input = []
rl.on('line', function(line) {
if(!line) {
rl.close()
}
else{
input.push(line)
}
})
.on('close', function(){
order(input)
process.exit()
})
function order(input) {
let [N, ...order] = input.map(Number)
console.log(order.sort((a, b)=> a - b).join('\n'))
}
위 코드는 readline 모듈을 사용해 입력 값을 받았으며 정렬된 배열을 join 메서드를 활용해 줄 바꿈 후 출력해 주었습니다.
반응형
'ALGORITHM > Baekjoon' 카테고리의 다른 글
[Javascript] 백준 10773번 문제, 제로 (feat.stack, reduce, Node.js) (24) | 2023.04.08 |
---|---|
[Javascript] 백준 1316번 문제, 그룹 단어 체커 (feat.slice, includes, Node.js) (16) | 2023.04.01 |
[Javascript] 백준 2444번 문제, 별 찍기 - 7 (feat.Node.js) (28) | 2023.03.18 |
[Python] 백준, 파이썬 입력받기 (feat.input, split, map) (24) | 2023.03.12 |
[Javascript] 백준, Node.js 입력받기 (feat.readline, fs) (25) | 2023.03.04 |