문제풀이/BOJ

[Python] BOJ/백준 4796번 캠핑

서채리 2021. 7. 21. 01:28

[문제]

https://www.acmicpc.net/problem/4796

 

4796번: 캠핑

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

www.acmicpc.net

 


[풀이]

휴가 v일 중 v//p 값은 캠핑장을 온전히 이용할 수 있는 날이다.

휴가 v일 중 v%p과 l 중 더 작은 일수만큼 캠핑장을 이용할 수 있다.

 


[코드]

- 첫 번째 방법

if __name__ == '__main__':
    case = 0
    while True:
        l, p, v = map(int, input().split())
        if l+p+v == 0:
            break
        case += 1

        result = (v//p)*l
        result += min((v%p), l)

        print("Case %d: %d" % (case, result))

 

- 두 번째 방법

if __name__ == '__main__':
    case = 0
    while True:
        l, p, v = map(int, input().split())
        if l+p+v == 0:
            break
        case += 1
        
        total = 0
        camping = 0
        while True:
            if total + p <= v:
                total += p
                camping += 1
            else:
                break
        print("Case %d: %d" % (case, camping * l + min((v%p), l)))