정렬. 1단계
2750번. 수 정렬하기
const fs = require("fs");
// 엔터로 구분되어 있는 값들을 split으로 처리하고,
// map을 사용해서 number 타입으로 변환
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n").map((item) => Number(item));
// 가장 앞에 있는 값은 배열 길이를 의미
const iter = input.shift();
// 오름차순 정렬을 위한 sort 메서드
input.sort((a,b) => a - b);
for(let i = 0; i < iter; i++){
console.log(input[i]);
}
아마 sort를 그냥 사용하는 분들이 계시리라 생각한다.(필자가 바로 그 사람^^)
이게 일의 자리까지만 숫자가 들어오면 상관없는데, 여러 자리 숫자도 들어온다는게 문제다.
sort 메서드는 매개변수가 없으면 유니코드를 기준으로 정렬을 한다.
따라서, 2, 1, 3, 10이 있다고 치면 1, 10, 2, 3으로 정렬되어버린다.
우리는 이런 상황도 고려를 해야하기 때문에 sort에 매개변수를 넣어 활용해야한다.
sort((a,b) => a - b);
a - b의 값(두 원소값의 차이)이 양수일 때 오름차순 정렬이 된다.
만약 내림차순을 하고싶다면 b - a를 넣어주면 되겠다.
이는 number 타입에 대한 것이고, 문자열에 대한 정렬은 참고 자료에 넣어놓도록 하겠다.