22864 피로도
업데이트:
1. 문제
문제는 링크에 들어가면 있다.
2. 정답 코드
문제의 내 정답 코드는 다음과 같다.
import sys
read = sys.stdin.readline
A,B,C,M = list(map(int,read().split()))
hour = 0
fatigue = 0
work = 0
while hour != 24 :
# 일을 했다고 가정하고 판단하는게 맞는듯.
# 피로도가 최대를 넘지 않을 때만 일하자.
if fatigue + A <= M :
fatigue += A
work += B
# 피로도가 최대를 넘으면 쉬자.
else :
fatigue -= C
if fatigue < 0 :
fatigue = 0
hour +=1
print(work)
3. 풀이 및 생각
문제 풀이
이 문제는 24시간을 체크하면서, 피로도가 M을 넘지 않을 때까지 일하다가 다시 일할 수 있을 때까지 쉬다가 일하고 쉬고 일하고 쉬고를 반복하는 문제다. 여기서 중요한 점은, 일했다고 가정하고 피로도가 넘을까? 를 생각해서 조건문을 세워야하는 것이다. 그래야 마지막 예제를 통과할 수 있다.
나의 생각
이건 그렇게 어려운 문제가 아니었지만 쉬어가는 재밌는 문제였다.