https://www.acmicpc.net/problem/22864
22864번: 피로도
첫 번째 줄에 네 정수 $A$, $B$, $C$, $M$이 공백으로 구분되어 주어진다. 맨 처음 피로도는 0이다.
www.acmicpc.net
문제
하루에 한 시간 단위로 일을 하거나 일을 쉬어도 된다. 하루에 한 시간 일하면 피로도는 만큼 쌓이고 일은 만큼 처리할 수 있다.
만약에 한 시간을 쉰다면 피로도는 만큼 줄어든다. 단, 피로도가 음수로 내려가면 0으로 바뀐다. 당연히 일을 하지 않고 쉬었기 때문에 처리한 일은 없다.
피로도를 최대한 을 넘지 않게 일을 하려고 한다. 를 넘기면 일하는데 번아웃이 와서 이미 했던 일들도 다 던져버리고 일을 그만두게 된다.
번아웃이 되지 않도록 일을 할때 하루에 최대 얼마나 일을 할 수 있는지 구해보자. 하루는 24시간이다.
입력
첫 번째 줄에 네 정수 , , , 이 공백으로 구분되어 주어진다.
맨 처음 피로도는 0이다.
출력
하루에 번 아웃이 되지 않도록 일을 할 때 최대 얼마나 많은 일을 할 수 있는지 출력한다.
제한
- $1≤ A ≤1,000,000
- $1≤ B ≤10,000
- $1≤ C ≤10,000
- $1≤ M ≤1,000,000
예제 입력 1
5 3 2 10
예제 출력 1
24
예제 입력 2
10 5 1 10
예제 출력 2
15
예제 입력 3
11 5 1 10
예제 출력 3
0
코드
const [a, b, c, m] = require('fs').readFileSync('/dev/stdin').toString().trim().split(' ').map(Number);
let work = 0;
let fatigue = 0;
for(let i = 0; i < 24; i++){
if(fatigue < m && fatigue + a <= m){
fatigue += a;
work += b;
} else{
fatigue -= c;
if(fatigue < 0) fatigue = 0;
}
}
console.log(work);'알고리즘 > 백준' 카테고리의 다른 글
| [백준] 2864: 5와 6의 차이 / Node.js (JavaScript) (0) | 2023.04.11 |
|---|---|
| [백준] 2863: 이게 분수? / Node.js (JavaScript) (0) | 2023.04.11 |
| [백준] 11034: 캥거루 세마리2 / Node.js (JavaScript) (0) | 2023.04.10 |
| [백준] 2965: 캥거루 세마리 / Node.js (JavaScript) (0) | 2023.04.08 |
| [백준] 2720: 세탁소 사장 동혁 / Node.js (JavaScript) (0) | 2023.04.07 |
댓글