안경잡이 구루루

백준 2742 ( 기찍 N ) [ python ] 본문

파이썬(Python)/문제풀이(백준,BaekJoon)

백준 2742 ( 기찍 N ) [ python ]

구루루(gururu) 2020. 5. 7. 22:13
반응형

문제

자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.

출력

첫째 줄부터 N번째 줄 까지 차례대로 출력한다.


나:

import sys

N = int(sys.stdin.readline())
1 <= N <= 100000

for i in range(N,0,-1):
    print(i)

완성된 코드는 위와 같다.

 

import sys

우선 입력값의 크기가 크다고 생각되서 시간초과 일어날 것을 우려해 import sys를 통해 모듈을 사용했다.

 

N = int(sys.stdin.readline())
1 <= N <= 100000

sys 모듈을 사용해서 input() 대신에 sys.stdin.readline() 을 사용했다. 이때 N값의 범위를 한정했다.

 

for i in range(N,0,-1):
    print(i)

이 문제의 핵심을 입력값의 숫자부터 1까지 거꾸로 출력하는 것이다. 그래서 나는 range 함수를 활용하기로 했다.

range([start,], stop, [,step])    # 입력받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 돌려줌                                                         

                                                # 실제 범위는 start ~ stop -1 로 돌려줌

 

출력의 시작값을 N으로,   종료값을 0으로 설정( 종료값 0은 출력되지 않아서 원래 값보다 하나 더 작거나/ 크게 씀 )   해서 1까지 출력할 수 있도록 했다.   

이때 우리가 주목할 것은 step 부분으로 ,   즉 N부터 -1씩 값이 줄어들면서 종료값 0+1 까지 print(i)를 통해 출력했다.

 


다른사람:

https://claude-u.tistory.com/17

a=int(input())
for i in range(a):
    print(a-i)

완성된 코드는 위와 같다. 

 

a=int(input())

우선 입력값이 import sys를 쓸 만큼 크지 않아서 input을 사용했다.

 

for i in range(a):
    print(a-i)

range 함수가 start 부분을 설정하지 않으면 0부터 시작한다는 것을 활용했다.

즉 , 입력값 a 값과  range함수로  0 부터 a-1까지 i에 차례대로 들어가는 값을 빼서(a-i)  거꾸로 출력할 수 있도록 했다.

반응형