💡문제 풀이/백준 - JAVA

오븐 시계 / 2525

뇌 리셋은 기본이지 2023. 11. 9. 14:35

정보

분류 : 조건문

 

문제

문제링크

 

풀이

import java.util.*;

public class Main {
	public static void main(String args[]) {
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		
		int hour = (a * 60 + b + c) / 60;		// (14*60+30+20)/60=14.8333...
		int minute = (a * 60 + b + c) % 60;		// (14*60+30+20)%60=50
		
		if(hour >= 24) {
		  hour = hour-24;
		}
		
		System.out.printf("%s %s", hour, minute);
		
	}
}

 

풀이 후기

시(hour)는 1시간 = 60분이므로 60분 단위로 짤려야 한다.

예를 들어 14(a) 30(b) 20(c)을 입력받는다면 a를 분으로 변환한 후 b, c를 더해야한다.

더한 값을 60으로 나눈 몫이 시(hour)가 되고 나머지는 분(minute)이 된다.

💡hour 변수
시(a) * 60                       : 시를 분으로 변환
시(a) * 60 + b                 : 분 기준 현재시각
시(a) * 60 + b + c           : 분 기준 현재시각 + 조리시간
(시(a) * 60 + b + c) / 60  :   시(hour)
💡 minute 변수
시(a) * 60                         : 시를 분으로 변환
시(a) * 60 + b                   : 분 기준 현재시각
시(a) * 60 + b + c             : 분 기준 현재시각 + 조리시간
(시(a) * 60 + b + c) % 60  :   분(minute)

앞 전에 예로 든 숫자로는 정상적인 답이 출력된다.

 

하지만 여기서 주의할 점이 있다.

 

a는 0~23이다. 위의 계산식은 24 이상이면 어떻게 해야하는지 고려하지 않았다.

예를 들어, 23(a) 00(b) 120(c)라면 25시 0분이 출력된다.

문제를 보면 24시 00분이면 0시 0분이 되어야한다고 되어있다.

그렇다면 예로 든 올바른 출력 값은 1시 0분이다.

 

이 점을 보완하기 위해 if라는 조건문을 사용했다.

만약 hour가 24보다 크거나 작다면 hour에서 24를 빼도록 코드를 짜보았다.

reference

https://st-lab.tistory.com/292

'💡문제 풀이 > 백준 - JAVA' 카테고리의 다른 글

구구단 / 2739  (0) 2023.11.13
주사위 세개 / 2480  (0) 2023.11.09
알람 시계 / 2884  (1) 2023.11.09
사분면 고르기 / 14681  (1) 2023.11.09
윤년 / 2753  (0) 2023.11.07