백준(Python) 풀이/그리디 알고리즘

백준(Python) 4796번 캠핑 풀이

개발윗미 2021. 12. 13. 13:50

Python으로 구현한 4796번 캠핑 문제 풀이입니다.

 

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

 

4796번: 캠핑

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

www.acmicpc.net


case_number = 1

while True :
  l, p, v = map(int, input().split())
  if l == p == v == 0 :
    break
  value = v // p

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

  print('Case %d: %d' % (case_number, result))
  case_number += 1

 

1. 각 테스트케이스를 출력하기 위해 case_number를 1로 초기화하여 선언한다.

 

2. 입력받은 l, p, v 모두 0일 때까지 while문을 통해 반복수행한다.

 

3. 반복문 내부에서는 v//p (강산이가 캠핑장을 온전히 이용할 수 있는 일수) 를 구해 value에 할당한다.

 

4. 구한 value 값과 입력받은 l 값을 곱하여 result에 할당한다.

 

5. 휴가일 v 중 (v%p)와 입력받은 l을 비교하여 더 작은 일수를 result에 누적한다.

 

6. 최종적으로 해당 테스트케이스 값과 함께 result 값을 출력한 후 다음 테스트케이스를 위해 case_number을 1 증가시킨다.