본문 바로가기
Problem Solving/Baekjoon

[백준] 10162 전자레인지 - Greedy / Java

by graycode 2022. 11. 14.

 문제 링크

 

10162번: 전자레인지

3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은

www.acmicpc.net

 

 풀이 과정

각 버튼 당 동작 시간 300, 60, 10 을 큰 순서대로 입력값 t 로 나눈 나머지를 구해 t를 갱신하고,

각각의 몫을 StringBuilder 에 더하여 정답으로써 출력한다.

 

만약 t 를 10으로 나눈 나머지가 0이 아닐 시 어떠한 버튼으로도 정확히 나누어 떨어지지 않으므로 -1 을 출력한다.

 

 풀이 코드

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

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int t = Integer.parseInt(br.readLine());

        if (t % 10 != 0)
            bw.write("-1");
        else {
            StringBuilder sb = new StringBuilder();
            sb.append(t / 300 + " ");
            t %= 300;

            sb.append(t / 60 + " ");
            t %= 60;

            sb.append(t / 10 + " ");

            bw.write(sb.toString());
        }

        bw.flush();
    }

}

댓글