본문 바로가기
백준/수학

[백준] #22864 피로도 (python)

by 똥먹는낙타 2022. 2. 25.
728x90
반응형

https://www.acmicpc.net/problem/22864

 

22864번: 피로도

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

www.acmicpc.net

 

문제

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

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

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

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

입력

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

맨 처음 피로도는 0이다.

출력

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

 

예제 입력1

5 3 2 10

예제 출력1

24

 

예제 입력2

10 5 1 10

예제 출력2

15

# Code

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

day = 0

result = 0
count = 0

if a > m :
  print(0)
else :
  while day != 24 :
    day += 1
    if count + a <= m :
      result += b
      count += a
    else :
      if count - c >= 0 :
        count -= c
      else :
        count = 0

  print(result)
728x90
반응형

댓글