(Java) 백준 2525번 - 오븐 시계

코딩너구리·2026년 1월 16일

코딩 문제 풀이

목록 보기
161/266

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

문제

> KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다.
> 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다.
> 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다.

> 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다.

> 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오.

접근

시작시간의 분에 걸리는 시간을 더한 뒤 60으로 나눈 몫을 시에 추가하고 60으로 나눈 나머지를 분으로 가지면 된다. 이때 시가 24를 넘어가는 경우를 고려해 24보다 크거나 같다면 24를 빼준다.

문제해결

> 시작 시와 분을 H와 M변수에 입력받아 저장한다.
> 걸리는 시간을 T에 저장하고 M과 T를 더해 걸리는 분을 구한다.
> 이 M을 60으로 나눈 몫을 H에 더하고 나머지를 M으로 가져 분을 나타낸다.
> 만약 H가 24를 넘어가면 0시부터 가야하므로 24를 빼준값으로 갱신한다.

코드

import java.io.*;
import java.util.*;
import java.lang.*;

public class Main
{
    //2525번 오븐시계
    public static void main(String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int H = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());
        int T = Integer.parseInt(br.readLine());

        M += T;
        H += M / 60;
        if(H >= 24) H -= 24;
        M %= 60;

        System.out.println(H + " " + M);
    }
}

후기

내 풀이도 정답이지만 더 간결하게 하려면 입력받은 시작시간을 아예 분으로 고쳐버리고 걸리는 시간을 더한 뒤 1440(24x60)으로 나눈 나머지를 구한다. 이는 만약 전부 분으로 바꾼 수가 1440보다 크다면 24시를 넘어가 하루가 바뀌어버리는걸 뜻한다.
그래서 1440으로 나눈 나머지에 대해 60으로 나눈 몫을 시, 나머지를 분으로 가지면 된다.
즉, tmp = (Hx60+M+T) % 1440한 뒤 tmp / 60, tmp % 60 하면 두줄로 끝난다.

0개의 댓글