BOJ/Python
[BOJ/백준] 5032 - 탄산 음료 (Python)
tjdms4327
2024. 11. 7. 09:42
문제
현재 빈 병 e개와 찾은 f병으로 음료를 바꿔 먹으려고 한다.
c병 당 1병을 줄 때 총 몇 병을 마실 수 있는가.
풀이
음료를 바꿔 먹고 나온 새 병과 기존에 있던 병을 합쳐 c병과 같거나 많다면 또 음료를 바꿔 먹을 수 있다.
한 번 바꿔 먹을 때 (기존에 있던 병 수//c)병을 바꿔 먹을 수 있고 새로 (기존에 있던 병 수//c) 병이 생기는 것이다.
따라서 한 번의 과정을 거치면 남은 병 수는 '기존에 있던 병 수 - (기존에 있던 병 수//c)*c + (기존에 있던 병 수//c) = 기존에 있던 병 수 - (기존에 있던 병 수//c)*(c-1)'이 된다.
남은 병수가 c보다 작아지는 경우에 과정을 멈추게 된다.
코드
def new_coke(e,f,c):
bottle=e+f
count=0
while bottle>=c:
count+=(bottle//c)
bottle-=(bottle//c)*(c-1)
print(count)
e,f,c=map(int, input().split())
new_coke(e,f,c)