알고리즘(Algorithm)/백준(Baekjoon)

[백준 Baekjoon] 10162번 전자레인지 - JAVA

나아가는중 2022. 7. 15. 23:19
반응형

문제풀이

최소버튼 동작을 구하기 위해서는 가장 가장 동작시간이 오래 걸리는 버튼을 최대로 누르면 됩니다.


가장 동작시간이 긴 A버튼 부터 남아있는 요리시간과 비교하여 버튼을 누를 수 있는 경우 해당 버튼을 누를 수 있는 최대를 구합니다.


시간을 정확히 맞출 수 없는 경우는 이 경우 버튼 C로 시간을 맞출 수 없는 경우입니다.


소스코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        final int btnTimeA = 300, btnTimeB = 60, btnTimeC = 10;
        int cntBtnA = 0, cntBtnB = 0, cntBtnC = 0;
        int T = Integer.parseInt(br.readLine());

        if (T % btnTimeC != 0) {
            System.out.println(-1);

            return;
        }

        if (T >= btnTimeA) {
            cntBtnA += T / btnTimeA;
            T %= btnTimeA;
        }

        if (T >= btnTimeB) {
            cntBtnB += T / btnTimeB;
            T %= btnTimeB;
        }

        cntBtnC += T / btnTimeC;
        T %= btnTimeC;

        System.out.println(cntBtnA + " " + cntBtnB + " " + cntBtnC);
    }
}
반응형