시간초과
바로 이전 문제와 거의 똑같아서 코드를 그대로 제출했더니 시간초과
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const N = parseInt(input[0]);
let arr = [];
for (i = 1; i <= N; i++) {
arr.push(parseInt(input[i]));
}
arr.sort((a, b) => {
if (a > b) {
return 1;
} else {
return -1;
}
});
for (k of arr) {
console.log(k);
}
input자체가 split으로 배열이 되었으므로 굳이 배열 arr을 만들어 데이터를 넣을 필요가 없어서 arr 삭제
input[0]에 있는 N이 출력에는 필요없으므로 shift()를 이용해 삭제
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const N = parseInt(input[0]);
input.shift();
input.sort((a, b) => {
if (a > b) {
return 1;
} else {
return -1;
}
});
for (k of input) {
console.log(k);
}
sort 함수가 느린건가 싶어서 다른 방법을 찾아보았으나 그렇다 할만한 방법이 없었고 문제에서도 내장함수를 이용하라고 명시되어있음.
그래도 기존에는 sort()가 길었는데 input.sort((a, b) => a - b);
만으로도 가능한 걸 알게됨
하지만 여전히 시간초과
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
input.shift();
input.sort((a, b) => a - b);
for (k of input) {
console.log(parseInt(k));
}
구글에 검색해보니 console.log()
를 하나씩 출력해서 시간초과가 난것임을 알게 됨.
console.log(input.join("\n"));
을 사용해 하나의 문자열로 출력 가능
const fs = require("fs");
let input = fs.readFileSync("BAEKJOON/dev/stdin.txt").toString().trim().split("\n");
input.shift();
input.sort((a, b) => a - b);
console.log(input.join("\n"));
input.sort((a, b) => a - b);
console.log(input.join("\n"));
(여러 줄을 하나의 문자열로 출력하므로 빠름)