백준 알고리즘 2742번

백준 알고리즘 2742번 기찍 N

문제

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

입력

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

출력

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

예제

입력출력
55
4
3
2
1

풀이

n = int(input())

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

큰 숫자부터 작은 숫자 순으로 나오는 것을 역반복문이라고 한다. 역반복문에는 두 가지 방법이 잇다. 첫 번째 방법은 기본 반복문처럼 쓰되, 큰 숫자를 먼저 적고 두 번째에 작은 숫자를 그리고 역순으로 반복한다는 의미에서 “-1”을 적으면 된다. 예를 들어서 5부터 1까지 역순으로 표출하고 싶다면 for i in range(5, 0, -1): 이런식으로 표현하면 된다. 기존에는 항상 for i in range(a, b)라는 두가지만 입력한느 구조로 썼기 때문에 range 안에 숫자를 3개를 쓰는 것이 어색하다. 반복눙느 for i in range(start, stop, step):이라는 구조를 띄고 있다. step은 숫자간의 거리를 뜻하기 때문에 역순을 표출할 때는 -1로 표현하는 것이다. 그리고 stop은 마지막 숫자를 표현하지 않기 때문에 순차적인 반복문을 작성할 때는 항상 for i in range(1, n+1):로 표현해 n까지 표출할 수 있도록 만들었떤 것이다.

두 번째 방법은 reversed() 함수를 사용하는 것이다.

for i in reversed(range(n)):

이렇게 reversed() 함수를 사용해도 역순으로 숫자를 표출하게 된다. 하지만 reversed() 함수를 사용하면 n부터 표출되지 않고 n-부터 표출되기 때문에 n부터 표출하려면 n+로 적어야 한다.

* TOC {:toc}

© 2021. All rights reserved.