728x90
반응형
https://www.acmicpc.net/problem/22864
문제
하루에 한 시간 단위로 일을 하거나 일을 쉬어도 된다. 하루에 한 시간 일하면 피로도는 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
반응형
'백준 > 수학' 카테고리의 다른 글
[백준] #1934 최소공배수 (python) (0) | 2022.03.01 |
---|---|
[백준] #2609 최대공약수와 최소공배수 (python) (0) | 2022.03.01 |
[백준] #1110 더하기 사이클 (python) (0) | 2022.02.26 |
[백준] #2745 진법 변환 (python) (0) | 2022.02.26 |
[백준] #5618 공약수 (python) (2) | 2022.02.25 |
댓글