Koala - 9기/기초 알고리즘 스터디
[백준/Python] 1673번 치킨쿠폰
en2014
2023. 1. 22. 23:34
https://www.acmicpc.net/problem/1673
1673번: 치킨 쿠폰
강민이는 치킨 한 마리를 주문할 수 있는 치킨 쿠폰을 n장 가지고 있다. 이 치킨집에서는 치킨을 한 마리 주문할 때마다 도장을 하나씩 찍어 주는데, 도장을 k개 모으면 치킨 쿠폰 한 장으로 교환
www.acmicpc.net
문제분석
입력으로 주어지는 것: 현재 갖고있는 치킨쿠폰 개수, 치킨쿠폰 하나로 교환할 수 있는 도장의 개수(k)
출력: 최대로 먹을 수 있는 치킨의 개수
문제풀이
재귀함수를 이용해서 문제를 해결 하였다.
(현재 갖고있는 쿠폰 수, k, 현재 까지 먹은 치킨의 개수)를 입력받고
함수안에서는, 한 프로세스에서 새로 생기는 쿠폰을 포함한 현재 갖고있는 쿠폰 수를 계산하고,
지금 프로세스에서 먹은 치킨을 누적해서 함수를 다시 호출 하였다.
def calc(coupon, k, chicken):
if coupon < k:
chicken += coupon
return chicken
new_coupon = coupon //k + coupon % k
chicken += coupon // k * k
return calc(new_coupon, k, chicken)
while True:
try:
coupon, k = map(int, input().split())
chicken = 0
chicken = calc(coupon, k, chicken)
print(chicken)
except EOFError:
break