업데이트:

카테고리: , ,

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을 넘지 않을 때까지 일하다가 다시 일할 수 있을 때까지 쉬다가 일하고 쉬고 일하고 쉬고를 반복하는 문제다. 여기서 중요한 점은, 일했다고 가정하고 피로도가 넘을까? 를 생각해서 조건문을 세워야하는 것이다. 그래야 마지막 예제를 통과할 수 있다.


나의 생각

이건 그렇게 어려운 문제가 아니었지만 쉬어가는 재밌는 문제였다.

최대 1 분 소요