문제를 읽자마자 식이 떠올랐다.
8일 중 5일의 휴가를 사용할 수 있는 사람에게 20일의 휴가가 생긴다면,
(20//8) * 5 + 20%8 = 14
이와 같은 식을 일반화시켜서 코드를 작성하였다.
# 캠핑
import sys
while(1):
L,P,V = map(int,sys.stdin.readline().split())
if L == 0 and P == 0 and V == 0: # 종료조건
exit()
camping = V // P
max_camping = L * camping + (V - P * camping)
print(max_camping)
=> 런타임에러 발생
1) L값이 남은 기간보다 더 짧을 수 있기 때문에 min함수를 이용하여 값을 비교해주어야 한다.
2) 출력이 Case %d: %d 형태로 되어야 하는데, 이를 신경쓰지 못했다.
# 캠핑
import sys
i = 1
while(1):
L,P,V = map(int,sys.stdin.readline().split())
if L == 0 and P == 0 and V == 0:
break
camping = V // P
max_camping = L * camping + min(L, V % P)
print("Case %d: %d" %(i,max_camping))
i += 1
바보