4796번: 캠핑
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.
www.acmicpc.net
[코드]
cnt = 1
while True:
L, P, V = map(int, input().split())
if L == 0 and P == 0 and V == 0:
break
answer = 0
while V > 0:
if V - P > 0:
V -= P
answer += L
else:
if V >= L:
answer += L
break
else:
answer += V
break
print('Case ' + str(cnt) + ':', end=' ')
print(answer)
cnt += 1
[아이디어]
탐욕 알고리즘 적용 그 자체보다 문제이해가 더 안되었다.
문제를 다시 설명하면 다음과 같다.
총 휴가일수가 20일 일때 8일중 5일만 연속해서 캠핑을 사용할 수 있다는 것은 5일동안 캠핑이용하면 반드시 적어도 3일이상 캠핑 이용 못한다는 것이다.
다시말해 20일중 => 5일캠핑, 3일캠핑X, 5일캠핑, 3일캠핑X, 남은4일캠핑
총 14일 캠핑 이용할 수 있다는 것이다.
그냥 왼쪽서부터 채워나가면 된다.
[참고]
여전히 map 함수가 햇갈림
'코딩테스트 준비 > [백준]' 카테고리의 다른 글
[백준] 1654 - 랜선 자르기 (파이썬) (0) | 2021.05.13 |
---|---|
[백준] 1449번 - 수리공 항승 (파이썬) (0) | 2021.05.13 |
알고리즘 공부 방법/순서 참고 블로그 (0) | 2021.05.08 |
[백준] 10844번 - 쉬운계단수 (파이썬) (0) | 2021.05.08 |
[백준] 9465번 - 스티커 (0) | 2021.05.08 |