Study/Problem Solving

[BOJ_22864] 피로도

monitor 2023. 11. 19. 17:32

설명


크게 설명을 할 수 있는 문제가 아님. 문제에 주어진 식을 그대로 구현을 하면 되는 문제다. 현재 피로도를 계산해두고 현재 할 수 있는 일량을 적재하면서 체크해나가는 문제

 

코드


package Math;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BOJ_22864 {
    public static void main(String[] args) throws Exception{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tk = new StringTokenizer(in.readLine()," ");
        int A = Integer.parseInt(tk.nextToken()); // 1시간 일 하면 A 만큼 피로가 쌓임
        int B = Integer.parseInt(tk.nextToken()); // 1시간에 B 만큼 일 함
        int C = Integer.parseInt(tk.nextToken()); // 1시간에 C 만큼 피로를 삭제함
        int M = Integer.parseInt(tk.nextToken()); // 피로를 M을 넘기면 안 됨

        int work = 0;
        int fatigue = 0;// 피로도
        for(int i = 0; i < 24; i++){
            if(fatigue + A <= M){
                fatigue += A;
                work += B;
            }else{
                fatigue -= C;
                if(fatigue < 0){
                    fatigue = 0;
                }
            }
        }
        System.out.println(work);
    }
}
 

22864번: 피로도

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

www.acmicpc.net