이 문제는 메모리 초과로 인해 JavaScript로는 풀 수 없는 문제라고 한다.
그래도 이전에 몰랐던 계수정렬에 대해 알게 되었다.
new Array(max + 1);
(주어진 숫자는 자연수인데 인덱스는 0부터 세므로)const fs = require("fs");
let input = fs.readFileSync("BAEKJOON/dev/stdin.txt").toString().trim().split("\n");
const N = input.shift();
const max = Math.max(...input);
const array = new Array(max + 1);
array.fill(0);
for (let i = 0; i < input.length; i++) {
array[parseInt(input[i])]++;
}
for (let i = 0; i < array.length; i++) {
if (array[i]) {
for (let j = 0; j < array[i]; j++) {
console.log(i);
}
}
}
범위가 작을 때에 한해서 정렬 속도가 sort()에 비해 빠르다고 한다.
이전에 JSON에 값을 넣는 방식과 비슷한 것 같지만 해당 방식은 단순히 해당 숫자의 갯수만 체크가 가능할 뿐
계수 정렬을 이용하면 숫자의 크기에 따라 인덱스가 지정되므로 오름차순이 된다.