1일 1솔

[백준] 22864번: 피로도 (Python, 파이썬)

junmukbap98 2023. 9. 6. 18:41

문제 링크: https://www.acmicpc.net/problem/22864

 

22864번: 피로도

첫 번째 줄에 네 정수 $A$, $B$, $C$, $M$이 공백으로 구분되어 주어진다. 맨 처음 피로도는 0이다.

www.acmicpc.net

 

최대한 할 수 있는 일의 양을 구하는 것이기 때문에

일을 했을 때, 누적 피로도가 M을 넘지 않을 때까지는 계속 일을 한다. 

그렇지 않은 경우는 쉰다.

a, b, c, m = map(int, input().split())

time = 24
accum_m = 0
work = 0

if a > m:
    work = 0
else:
    for _ in range(24):
        if accum_m + a <= m:
            accum_m += a
            work += b

        else:
            accum_m -= c
            if accum_m < 0:
                accum_m = 0

print(work)

주의할 점!

(1) accum_m + a <= m: a를 더했을 때 M을 넘지 않는 경우에만 일을 해야한다.

(2) 피로도가 음수로 바뀔 때는 0으로 바꿔줘야한다