문제
현재 빈 병 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)
'BOJ > Python' 카테고리의 다른 글
[BOJ/백준] 5704 - 팬그램 (Python) (0) | 2024.11.07 |
---|---|
[BOJ/백준] 5054 - 주차의 신 (Python) (1) | 2024.11.07 |
[BOJ/백준] 4447 - 좋은놈 나쁜놈 (Python) (0) | 2024.11.07 |
[BOJ/백준] 3040 - 백설 공주와 일곱 난쟁이 (Python) (0) | 2024.11.06 |
[BOJ/백준] 3035 - 스캐너 (Python) (0) | 2024.11.06 |