(접근 방법)
오븐 시계
문제는 현재 시간에서 필요한 시간을 더하여 훈제오리구이 요리가 끝나는 시각을 계산하는 문제이다.
이를 해결하기 위해서 필자는 두 개의 방법을 생각했다.
60
이 넘는다면 시를 올림하여 나머지를 분으로 계산하는 것하지만 첫 번째 방법은 분끼리 더한 값이 60
이 넘는지에 대한 여부도 봐야하고 시를 올림하는 절차도 필요하기에 방법이 복잡하다.
따라서 필자는 두 번째 방법을 사용하여 문제를 풀었다.
먼저 주어진 시간을 분
단위로 변환해야 한다. 이것은 시
에 60
을 곱한 뒤 모든 분
단위를 더하면 되는 것이기에 쉬울 것이다.
int minute = A*60+B+C;// 분 단위 변환
그 다음으로는 분 단위
로 변환된 minute
을 다시 60
으로 나누어 시간을 계산한다.
int hour = (minute/60);
하지만 이렇게 하면 문제점이 하나가 있다.
문제에서는 시 단위
가 0~23
까지라고 되어있는데 만약 hour
가 24
이상이 된다면 이상한 숫자가 나올 것이 분명하다.
따라서 나머지 연산자
를 사용하여 그 문제를 해결하였다.
int hour = (minute/60)%24;
마지막으로 아직 모든 분 단위의 합이 값으로 있는 minute
를 60
으로 나머지 연산자를 사용하여 분 단위
도 정확하게 구해준다.
System.out.println(hour+" "+minute%60);
import java.util.Scanner;
class B2525 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int A = scan.nextInt();
int B = scan.nextInt();
int C = scan.nextInt();// 요리에 필요한 시간(necessary)
int minute = A*60+B+C;// 시로 변환
int hour = (minute/60)%24;
System.out.println(hour+" "+minute%60);
}
}