반응형

www.acmicpc.net/problem/4796

 

4796번: 캠핑

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.

www.acmicpc.net

문제 설명

입력으로 L, P, V를 입력받는다. ( 1 < L < P < V )

이는 총 V일간의 휴가기간동안 캠핑장을 연속하는 P일 중, L일동안 이용할 수 있다는 뜻이다.

예를 들어, V = 20, P = 8, L = 5 이면, 

총 휴가기간 20일 중 캠핑장을 연속하는 8일중 5일간 이용할 수 있다는 뜻이다.

그래서 처음 5일을 이용하고 그 뒤 3일은 이용을 못하고 다시 5일을 이용하고 이런 식으로 전개가 된다.


풀이 과정

캠핑장을 P일 꽉채워서 이용할 수 있는 개수는 V // P가 될 것이다.

그리고 나머지는 꽉 채우지 못하고 남은일수만큼 캠핑장에 있게 된다.

단, 남은일수가 캠핑장을 이용할 수 있는 일수보다 많이 남았다면 이용할 수 있는 날만큼만 이용하게 된다.

 

(예를 들어, 남은 일수가 3일이고 이용할 수 있는 날짜가 1일이면 1일만 이용하게 되는 것이다.

예시로 캠핑장이 연속하는 4일중 1일만 이용가능하고 3일은 이용 불가능한 경우이다.

이를 if문으로 표현하였다.)

i = 0
while True:
    i+=1
    l, p, v = map(int, input().split())
    if l==0 and p==0 and v==0:
        break
    a = v//p
    b = v%p
    if l<b:
        b = l
    print("Case %d: %d" %(i, a*l+b))
    

 

https://github.com/HongEunho

 

HongEunho - Overview

📖 Android, Java, Kotlin, Algorithm. HongEunho has 15 repositories available. Follow their code on GitHub.

github.com

전체 문제 & 코드는 위의 깃에 정리되어 있습니다.

팔로우 & 맞팔은 환영입니다 !

 

반응형

+ Recent posts