본문 바로가기

BOJ/Python

[BOJ/백준] 5032 - 탄산 음료 (Python)

문제

문제링크

현재 빈 병 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)