for문
1부터 N까지 출력하는 문제
자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램 작성
(※ 시간 제한 : 1초)
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
첫째 줄부터 N번째 줄까지 차례대로 출력
▣ 코드
1) 첫번째 시도 (시간초과)
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', line => {
const num = parseInt(line);
for(let i = 1; i <= num; i++) {
console.log(i);
}
}).on('close', () => {
process.exit();
})
2) 두번째 시도 (성공)
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', line => {
let arr = [];
const num = parseInt(line);
for(let i = 1; i <= num; i++) {
arr += i + "\n";
}
console.log(arr);
}).on('close', () => {
process.exit();
})
▣ 설명
첫번째 작성한 코드는 for문을 n번 돌면서 한 줄씩 출력한다.
출력은 문제 없으나 실행하는데 시간 초과하는 문제가 발생했다.
아래와 같이 로직을 바꿔 '시간 제한' 조건을 충족시켰다.
반복문을 사용하는 경우, 매번 반복하고 출력하는 방식이 아니라
배열을 이용해 출력할 값을 모두 추가하여 마지막에 출력하는 방식으로 실행 시간을 줄여 효율적인 코드 작성하도록 하자.