무슨 방법을 써도 메모리 초과남. 백준에서 js로 풀 수 없음.
어찌됐든 계수정렬 알고리즘 공부할 수 있어서 좋았음.
계수정렬(Counting sort)
시간복잡도가 무려 N인 엄청 빠른 알고리즘.
하나의 배열을 만들고, 정렬하고 싶은 배열의 숫자에 해당하는 자리에 수를 더해주는 것. 자리를 바꾸는 것이 아니라 숫자확인 후 +1 이런식이여서 짱빠름.
더 정리 필요
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('\n');
//3:48
//알게된 것 Math.max.apply(null, arr);
let N = Number(input.shift());
let arr = input.map(x => +x);
let max = Math.max.apply(null, arr);
let arrange = new Array(max);
arrange.fill(0);
let answer = '';
for(let i = 0; i < N; i++) {
arrange[arr[i]-1]++;
}
for(let i = 0; i < arrange.length; i++) {
if(arrange[i] !== 0) {
for(let j=0; j < arrange[i]; j++) {
answer += (i+1) + '\n';
}
}
}
console.log(answer);