오븐 시계 풀이
2023. 6. 12. 10:30ㆍBaekJoon/조건문
문제내용
사용자에게 현재시간, 요리하는데 필요한 시간을 입력받아 현재시간 + 필요한 시간을 계산하여 출력하는 문제이다.
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int hour = sc.nextInt();
int minute = sc.nextInt();
int cooking = sc.nextInt();
minute += cooking;
if(minute >= 60){
hour += minute/60;
minute -= 60*(minute/60);
if(hour >= 24){
hour -= 24;
}
}
System.out.println(hour+" "+minute);
}
}
먼저 사용자에게 현재시간과 필요한시간을 입력받기 위해 Scanner를 사용해 hour, minute, cooking에 각각 입력받았다.
필요한 분을 현재시간의 분에 더해 저장하였다.
만약 현재시간의 분이 60분보다 크거나 같게 된다면 분에서 시간으로 환산한 만큼을 더해주고 분은 그만큼을 빼준다.
만약 위의 로직을 실행하고 나서 시간이 24시간보다 같거나 크다면 24시간을 뺀 후 출력한다.
겪었던 문제
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int hour = sc.nextInt();
int minute = sc.nextInt();
int cooking = sc.nextInt();
minute += cooking;
if(minute >= 60){
hour += minute/60;
minute -= 60*(minute/60);
if(hour == 24){
hour = 0;
}
}
System.out.println(hour+" "+minute);
}
}
위의 풀이와 거의 비슷하지만 마지막 if문을 보면 시간이 24시일 때만 시간을 0으로 바꿔준다. 이떄는 시간이 24시간이 넘었을 때를 고려하지 않은 상황이다. 그렇기 때문에 24시간이 넘었을 때도 고려한 상황을 적용해주어야한다.