728x90
https://www.acmicpc.net/problem/4796
import sys
cnt = 1
while True:
l, p, v = map(int, sys.stdin.readline().split())
if l+p+v == 0: #1
break
res = (v//p)*l #2
res += min(v % p, l) #3
print(f'Case {cnt}: {res}') #4
cnt += 1 #5
#1 : 입력값이 모두 0이면 반복문 탈출
#2 : v를 p에 나눈 몫에 l을 곱한 값을 res로 초기화
#3 : v를 p에 나눈 나머지와 l 중 작은 값을 res에 추가
#4 : 문제에서 원하는 출력에 맞게 출력
#5 : cnt +1 후 반복
#3 처럼 둘 중 작은 값을 추가하는 이유는 v%p가 l보다 크면 l을 추가해주고 작으면 v%p를 추가해 줘야하기 때문이다. l, p, v가 5, 8, 23인 경우 v % p는 7인데 최대한 머무를 수 있는 날짜는 l인데 l이 5이니까 7말고 5를 추가해줘야 한다.
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 18352 파이썬(python) : 특정 거리의 도시 찾기 (0) | 2022.08.16 |
---|---|
[백준] 2217 파이썬(python) : 로프 - (★) (0) | 2022.08.16 |
[백준] 2864 파이썬(python) : 5와 6의 차이 (0) | 2022.08.16 |
[백준] 5585 파이썬(python) : 거스름돈 (0) | 2022.08.16 |
[백준] 1068 파이썬(python) : 트리 (0) | 2022.08.15 |