문제 내용은 300 / 60 / 10 초로 입력받은 값을 최소 횟수로 나눠서 그 횟수를 예제 출력과 같이 출력해야 하고, 만약 값이 0으로 떨어지지 못했을 경우에는 -1을 출력하면 되는 문제인데
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int time = sc.nextInt();
int[] oven = new int[3];
oven[0] = time / 300;
time = time % 300;
oven[1] = time / 60;
time = time % 60;
oven[2] = time / 10;
time = time % 10;
if(time > 0) {
System.out.println(-1);
} else {
System.out.println(oven[0] + " " + oven[1] + " " + oven[2]);
}
}
}
최소 횟수를 구하기 위해서는 입력받은 값을 가지고 큰 수부터 나누기 시작하되 나눈 횟수를 배열에 넣어 보관하고 이후 나누면서 10까지 내려오게 되면 최소 횟수를 구할 수 있고 끝까지 나눠봤지만 남은 값이 0보다 크다면 나눌 수 없는 값이기 때문에 -1을 반환하면 된다.
마지막으로 -1로 빠지지 않았다면 잘 진행된 경우기 때문에, 배열에 넣어둔 값을 출력 양식에 맞춰서 꺼내주면 끝이다.
Leave a Reply