Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

바닥부터 시작하는 개발 공부

[알고리즘]백준 22864반: 피로도 본문

Algorithm/백준

[알고리즘]백준 22864반: 피로도

Im_light.J 2023. 2. 21. 14:52
728x90

알고리즘 유형: 수학 

문제

하루에 한 시간 단위로 일을 하거나 일을 쉬어도 된다. 하루에 한 시간 일하면 피로도는  만큼 쌓이고 일은  만큼 처리할 수 있다.

만약에 한 시간을 쉰다면 피로도는  만큼 줄어든다. 단, 피로도가 음수로 내려가면 0으로 바뀐다. 당연히 일을 하지 않고 쉬었기 때문에 처리한 일은 없다.

피로도를 최대한  을 넘지 않게 일을 하려고 한다.  를 넘기면 일하는데 번아웃이 와서 이미 했던 일들도 다 던져버리고 일을 그만두게 된다.

번아웃이 되지 않도록 일을 할때 하루에 최대 얼마나 일을 할 수 있는지 구해보자. 하루는 24시간이다.

입력

첫 번째 줄에 네 정수 , , , 이 공백으로 구분되어 주어진다.

맨 처음 피로도는 0이다.

출력

하루에 번 아웃이 되지 않도록 일을 할 때 최대 얼마나 많은 일을 할 수 있는지 출력한다.

import sys 
from string import ascii_uppercase

A,B,C,M = map( int, sys.stdin.readline().strip().split() ) 
time, tire, work = 0, 0, 0

while time!=24: 
    if tire+A<=M:
        work+=B
        tire+=A
        time+=1
    else: 
        tire-=C
        if tire<0: 
            tire = 0 
        time+=1
print(work)
728x90
Comments