개발은 처음이라 개발새발
[Python] for문을 거꾸로 해보자! 본문
파이썬을 공부하면서 저는 개인적으로 조건문과 반복문을 이해하는 게 굉장히 어려웠습니다. 물론 지금도 완벽하게 알지 않지만 백준 단계별 문제 풀이를 통해서 알고리즘을 이해해 나가고 있는데요. 오늘은 백준 단계별 문제 풀이 반복문 챕터 중 두 문제에 대해 간단한 포스팅을 해볼까 합니다.
우선 2741번 문제입니다.
해당 문제는 매우 간단하게 n이라는 변수에 숫자를 입력하고 입력한 숫자만큼 순차적으로 표출 시키면 됩니다. 간단하니 바로 코드를 입력해 결과를 확인해보겠습니다. 저는 n에 예제와 달리 10을 넣어보겠습니다. 옳은 방법이라면 1부터 10까지 나오겠죠?
n = int(input())
for i in range(1,n+1):
print(i)
네 이렇게 1부터 10까지 숫자가 나왔습니다. 그렇다면 거꾸로 10부터 숫자가 표출되려면 어떻게 해야 할까요? 이와 관련된 2742번 문제도 풀어보겠습니다.
큰 숫자부터 작은 숫자 순으로 나오는 것을 역반복문이라고 하는데요. 역반복문에는 두가지 방법이 있습니다. 첫번째 방법은 기본 반복문처럼 쓰되, 큰 숫자를 먼저 적고 두번째에 작은 숫자를 그리고 역순으로 반복한다는 의미에서 '-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까지 표출할 수 있도록 만들었던 것입니다. 그러면 2742번 문제를 풀어볼까요.
n = int(input())
for i in range(n,0,-1):
print(i)
위의 코드를 통해 2742번을 해결해봤습니다. 하지만 역반복문은 앞서 말씀드렸듯 또 하나의 방법이 있는데요. 바로 reversed() 함수를 사용하는 것입니다.
** reversed() 함수 사용 반복문 구조
for i in reversed(range(n)):
이렇게 reversed 함수를 사용해도 역순으로 숫자를 표출하게 됩니다. 하지만 reversed함수를 사용하면 n부터 표출되지 않고 n-1부터 표출되기 때문에 n부터 표출하려면 n+1로 적어야 합니다.
'파이썬' 카테고리의 다른 글
[Anaconda] 가상환경 리스트 확인하기 (0) | 2024.03.14 |
---|---|
[Anaconda] Anaconda 가상환경 생성하기 (0) | 2024.03.14 |
.format() 함수와 operator 모듈 (0) | 2024.01.17 |
파이썬 열 순서 변경[python/pandas] (0) | 2022.08.15 |
[책 소개] 혼.공.파, 혼자 공부하는 파이썬 (1) | 2022.07.07 |