공부하기/백준

[Java] 백준 풀기 2525 - 오븐 시계

XEV 2023. 6. 22. 23:54

자바 백준 2525번

브론즈 3

https://www.acmicpc.net/problem/2525

 

2525번: 오븐 시계

첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 사칙연산

 

 

 

 

 

문제 풀기

조리 시작 시각을 전체 minute 로 전환한다.

hour 을 minute 로 변경된 값에 조리 시간 minute 를 더한 뒤 날짜 변경이 있을 수 있기에 1440 으로 나눈 나머지만 저장한다.

이렇게 계산된 나머지 minute 로 시, 분을 구하고 출력한다.

 

 

 

 

 

코드 보기

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 cookingTime = sc.nextInt();
        
        // 조리 완료 후 시각 계산
        String result = calcTheTimeAfterCooking(hour, minute, cookingTime);
        
        // 결과 출력
        System.out.print(result);
    }
    
    public static String calcTheTimeAfterCooking(int hour, int minute, int cookingTime) {
        // 시작 시각을 minute 형식으로 표현
        int totalMinute = hour * 60 + minute;
        // 조리 시간을 더하고 하루 24시간 루틴에 의해 변경 되는 시간을 나머지 계산으로 minute 만 남김
        int newMinute = (totalMinute + cookingTime) % 1440;  // 24 * 60 = 1440
        
        // newMinute으로 바뀐 완료 시각의 hour를 몫 계산으로 구함
        int newHour = newMinute / 60;
        // newMinute으로 바뀐 완료 시각의 minute를 나머지 계산으로 구함
        int newMinuteRemainder = newMinute % 60;
        
        return newHour + " " + newMinuteRemainder;
    }
    
}