[백준] 2742. 기찍 N(feat. Javascript / node.js) 알고리즘

준리·2022년 5월 10일
0

자료구조알고리즘

목록 보기
23/38
post-thumbnail

반복문 단계

: 기찍 N[2742]

자연수 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)
profile
트렌디 풀스택 개발자

0개의 댓글