각 테스트 케이스에 대해서, 강산이가 캠핑장을 최대 며칠동안 사용할 수 있는지 예제 출력처럼 출력
시간 제한: 1초
메모리 제한: 128 MB
"""
입출력 예시)
5 8 20
5 8 17
0 0 0
-> Case 1: 14
Case 2: 11
"""
## 의사코드 ##
# ex)
# 5 8 20 -> Case 1: 14
# L = 5, P = 8, V =20
# -> 연속하는 8일 중 5일동안만 사용 가능, 강산이 휴가는 20일짜리
# - 첫 번째 8일 중 5일 사용
# -> 남은 휴가: (20 - 8) = 12 / 캠핑장 사용 일수: 5
# - 두 번째 8일 중 5일 사용
# -> 남은 휴가: (12 - 8) = 4 / 캠핑장 사용 일수: 5 + 5
# - 남은 4일 중 4일 모두 사용
# -> 남은 휴가: 0 / 캠핑장 사용 일수: 5 + 5 + 4
# => 몫 = V // P
# 나머지 = V % P
# 캠핑장 사용 일수 = L * 몫 + 나머지
첫 번째 시도
i = 0 # Case number
while True:
L, V, P = map(int, input().split())
if L == 0 and V == 0 and P == 0:
break
i += 1 # Case number + 1
res = (L * (V // P)) + (V % P)
print(f"Case {i}:", res)
-> 틀림 (L, P, V 순서를 잘못 씀..!)
두 번째 시도
i = 0 # Case number
while True:
L, P, V = map(int, input().split())
if L == 0 and V == 0 and P == 0:
break
i += 1 # Case number + 1
res = (L * (V // P)) + (V % P)
print(f"Case {i}:", res)
-> 틀림
통과한 코드
i = 0 # Case number
while True:
L, P, V = map(int, input().split())
if L == 0 and V == 0 and P == 0:
break
i += 1 # Case number + 1
n = V // P
r = V % P
# 나머지가 L보다 작은 경우, 나머지를 더함
if r < L:
res = (L*n) + r
# 나머지가 L보다 크거나 같은 경우, L을 더함
else:
res = (L*n) + L
print(f"Case {i}:", res)