[백준] 4796 캠핑

새싹·2021년 10월 6일
0

알고리즘

목록 보기
16/49

📌문제 링크

4796 캠핑

💡 문제 풀이

책에 있는 '큰 수의 법칙' 문제와 비슷해서 참고해서 풀었다
예를 들어, 캠핑장을 연속하는 8일 중 5일동안만 사용할 수 있다는 말은 5일 사용하고 난 뒤 3일은 사용하지 못한다는 말이다.
따라서 L=5, P=8, V=20이면 8일을 주기로 5일동안 사용하고, 20을 8로 나눈 나머지 4일동안 사용할 수 있다.

이 문제에서 주의할 점은, p로 나눈 나머지 날이 l보다 크면 나머지 날 수가 아닌 l만큼만 사용할 수 있다는 점이다.

📋코드

# 4796 캠핑
import sys
case = 0

while True:
    l, p, v = map(int, sys.stdin.readline().split())
    result = 0
    case += 1

    if l == 0 and p == 0 and v == 0:
        break

    # p를 주기로 l만큼 사용 가능
    result += (v // p) * l
    # p로 나눈 나머지 날이 l보다 클 때는 l만큼, 작을 때는 나머지 일만큼 사용 가능
    if v % p > l:
        result += l
    else:
        result += v % p

    print("Case {0}: {1}".format(case, result))

0개의 댓글