알고리즘 문제풀이/Greedy

백준 4796 파이썬 (그리디)

Aytekin 2021. 12. 15. 00:14

이 문제를 풀때의 아이디어는 나머지의 크기에 따라서 답이 달라진다는 것이다.

나머지가 연속으로 사용할 수 있는 기간(L)과 비교해서 큰 경우와 작은경우 케이스별로 처리하면 된다.

 

사실, 그냥 생각나는대로 풀어보았는데 운좋게 한번에 맞았다.

어떻게 이렇게 풀게 되었는지 설명하기가 애매한 듯 싶다.

 

이게 그리디 문제의 특징이 아닌가 싶다...? 라는 개인적인 생각.. 크흠...

# 4796 캠핑

case = 0
while True:
    case += 1

    L, P, V = map(int, input().split())

    if (L + P + V) == 0:
        break
    
    remainder = V%P if V%P <= L else L

    ans = L*(V//P) + remainder
    
    print(f'Case {case}: {ans}')
728x90

'알고리즘 문제풀이 > Greedy' 카테고리의 다른 글

백준 1744 파이썬(그리디)  (0) 2021.12.15
백준 1439 파이썬(그리디)  (0) 2021.12.15
백준 1715 파이썬 (그리디)  (0) 2021.12.14
백준 10610 파이썬(그리디)  (0) 2021.12.13
백준 1026 파이썬(그리디)  (0) 2021.12.10