필요하지 않으면 굳이 변수를 이용할 이유가 없다. 그저 돌리는 횟수로 반복문을 이용 가능하다. 예를 들면, 입력하는 수 만큼 변수를 입력받을 수 있다.
n=int(input())
for _ in range(n): # n회 만큼 변수 입력 받기.
price, count=map(int, input().split())
sys의 stdin은 대화형 입력에 사용된다. input와 같은 기능을 수행하기 때문에, 대신 이용 가능하다.
import sys
a, b=map(int, sys.stdin.readline().split()) # 변수 2개 이상인 경우
c=int(sys.stdin.readline()) # 변수 1개인 경우
오른쪽부터 시작하여 별 1개에서 5개까지 찍는 경우, 별의 개수 1부터 5를 맞추기 위하여 n을 지정하고, 조건에 맞게 띄어쓰기를 n을 이용하여 조정해주면 된다. 이 때, 출력 형식이 잘 맞는지 꼭 확인하기.
n=int(input())
for _ in range(n):
print(" "*(n-1-_) + "*"*(_+1))
코드 실행 시 에러가 발생하는 경우에 코드 멈춰 주기. (무한 반복문에서 유용하게 쓰일 수 있다.)
try:
실행할 코드
except:
예외가 발생했을 때 처리하는 코드
## 무한 반복문에서 사용하기
while True:
try:
실행할 코드
except:
예외가 발생했을 때 처리하는 코드
(예시) 1110번 : 더하기 사이클
위의 문제와 같이 조건이 많은 경우에는 수도코드로 조건을 나열한 뒤에 코드를 직접 짜보기.
# 0보다 작은 경우 앞에 0 붙여서 2자리 수 만들기
# 26 -> 2+6=8, 68 -> 6+8=14, 84 -> 8+4=12, 42 -> 4+2=6, 26 (4)
# num1+num2=(num1+num2), num2+(num1+num2)[-1]
# 55 -> 5+5=10, 50 -> 5+0=5, 05 -> 0+5=5, 55 (3)
# 1 -> 0+1=1, 11 -> 1+1=2, 12 -> 1+2=3, 13 -> ... -> 1 (60)
# 0 -> 0+0=0, 0 (1)
# 71 -> 7+1=8, 18 => 1+8=9, 89 => 8+9=17, 97 -> ... -> 71 (12)
# 1. 10 미만인 경우에는 앞에 0을 붙여주고 서로 더해주기, 새로운 숫자 등장
# 2. 새로운 숫자 등장
위와 같이 수도코드를 짜고 어떤 값들이 계속적으로 갱신해야 하는지 확인하고, 변수로 만들어줘서 계속 갱신해주기.
num1, num2가 계속 갱신 되면서 이로 인해 새로운 n이 생성된다. 새로운 n은 num2+(num1+num2)[-1] 값을 가지고 있다. 원래의 n은 나중의 새로운 n과 비교해야 하기 때문에, 값이 없어지지 않게 주의해야 한다.
n=input()
if int(n)<10:
n=n.zfill(2) # 10보다 작은 경우에 앞에 0 붙여주기.
new_n=n
result=0
while True:
num1=new_n[0]
num2=new_n[1]
small_sum=str(int(num1)+int(num2))
new_n=num2+small_sum[-1]
result+=1
if n==new_n:
break
print(result)