백준 4796번
https://www.acmicpc.net/problem/4796
문제
후기
가벼운 구현 및 그리디 알고리즘 문제다.
V일짜리 휴가를 우선 연속하는 P 일로 나눈다.
결과값에 (k*L) 을 더해주는 것은 공통적인 일이고,
V를 P로 나눈 나머지가 rest보다 클 때와, 작을 때의 경우에 대해
값을 다르게 처리해주기만 하면 되는 문제다.
나의 풀이
import sys
input = sys.stdin.readline
case = 1
while True:
L , P, V = map(int,input().split())
result = 0
if L==0 and P==0 and V==0: #0 , 0, 0 이면 종료
break
k = V // P
rest = V % P
if rest > L: #만약 V를 P로 나눈 나머지가 rest보다 클 때는 L을 한번 더 더해야한다.
result += (k*L) + L
else:
result += k*L + (V-(P*k))
print("Case {}: {}".format(case, result))
case +=1