자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
5
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
5
4
3
2
1
//https://www.acmicpc.net/problem/2742
const input = +require("fs").readFileSync("/dev/stdin").toString();
let answer = "";
for (let i = input; i >= 1; i--) {
answer += i + "\n";
}
console.log(answer);
백준 2741번 문제와 비슷한문제였다. 근데 4번이나 실패했다.
처음엔 출력 형식이 잘못되었다고 했다. 여러 시도를 해봤는데 왜 이럴까 생각해보았다.
문제는 여기였다.
for (let i = input; i >= 1; i--) {
input 값이 이전과 다르게 str
형태가 아니라 num
형태로 들어가야한다. 그래서 처음에 값을 입력받을 때 const input = +require("fs").readFileSync("/dev/stdin").toString();
이런식으로 require앞에 +를 입력해줌으로서 type을 number로 바꾼다.
잘했다. 근데 왜 시간초과가 떴느냐?
for (let i = input; i >= 1; i--) {
console.log(i)
}
귀찮아서 콘솔로그 i를 바로 찍어버렸더니 시간초과가 떠서 answer 변수를 만들어 넣고 출력하는 방식을 사용했다.
let s = ''
for(let i=a; i>0;) s += i-- + '\n'
console.log(s)