본문 바로가기

자료구조+알고리즘/BOJ

[백준2751-silver5] 수 정렬하기 2 (javascript)

https://www.acmicpc.net/problem/2751

 

2751번: 수 정렬하기 2

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

 

 

[풀이]

 

let fs = require('fs');
let [n, ...input] = fs.readFileSync('/dev/stdin').toString().trim().split('\n');

input.sort((a, b) => a - b);
console.log(input.join('\n'));

 

 

 

📌 여기서 주의할점은! 

sort() js 내부함수 사용할 시 숫자 배열 정렬은 무조건 이처리를 해줘야함!

 

- 첫 번째 인자가 두 번째 인자보다 작으면 음수를 반환

- 첫 번째 인자가 두 번째 인자보다 크면 양수를 반환

- 첫 번째 인자와 두 번째 인자와 같으면 0을 반환

 

숫자 배열을 제대로 오름차순 정렬하기 위해서는 첫 번째 인자에서 두 번째 인자를 빼준다

[-3, 2, 0, 1, 3, -2, -1].sort((a, b) => a - b);
// [-3, -2, -1, 0, 1,  2,  3]

 

반대로 숫자 배열을 내림차순 정렬을 하고 싶으면 피연산자의 순서를 바꿔줘야 한다

[-3, 2, 0, 1, 3, -2, -1].sort((a, b) => b - a);
// [3, 2, 1, 0, -1, -2, -3]
728x90
반응형