[백준] 4796번 : 캠핑 (파이썬)

뚝딱이 공학도·2022년 4월 3일
0

문제풀이_백준

목록 보기
106/160



문제



나의 답안

import sys
input=sys.stdin.readline

cnt=0
while True:
    cnt+=1

    l,p,v=map(int,input().split())

    if l==0 and p==0 and v==0:#모두 0인 경우
        break

    a=v//p  #이용할 수 있는 횟수
    b=v%p   #최대 실사용일 수만큼 이용하고 남은 나머지

    if l<b:#남은 일을 실 사용 가능한 일만큼 초기화해주어야 한다.
        b=l
    #남은 일보다 실 사용일이 크다면 바로 더해주어 출력해주면 됨
    print('Case {}: {}'.format(cnt,(a*l)+b))

접근 방법

  • l=5, p=8, v=20인 경우 최대 8일동안 이용할 수 있으며 5일 동안 이용가능하다.
    즉 8일 중 5일을 사용하고 3일은 사용하지 못한다.
    따라서 총 휴가기간 20일(v) 동안 5일(l)씩 2번(v//p, 총 10일), 남은 4일(v%p)을 포함하여 총 14일 동안 캠핑장을 사용할 수 있다.

  • 남은 기간이(v%p) l보다 크다면 이용할 수 없으므로 l만큼만 사용할 수 있도록 l으로 초기화해주어야 한다. 아닌 경우에는 횟수에 실사용일(l)을 곱해주고, 남은 기간을 더해주어 출력해주면 된다.

  • 유사문제 : [백준] 7983번

0개의 댓글