백준문제풀이 2단계 조건문6 2525번 오븐 시계 (C#)

2024. 4. 22. 20:00백준 문제풀이/2단계 조건문

6번 문제

 

문제가 길다.

백준에는 이렇게 스토리가 있는 문제들이 많다.

그냥 문제만 주는것이 아닌 배경까지 제공해주니 재밌게 문제풀이를 할수있다.

 

이문제를 간단하게 풀어보면

현제 시간에서 주어진 분 만큼 지난 시간을 출력해주면 되는 문제다.

 

처음에는 복잡하게 생각해서

주어진 분을 60으로 나눈 나머지를 현제 시간에 더한뒤

그 시간의 분이 60이 넘는 경우와 넘지 않는 경우로 나눠서 문제를 풀었다.

30줄이 넘는 답이 나왔는데, 뭔가 더 쉽게 풀수 있다는 생각이 들어서 좀 더 고민해봤다.

 

다행히 더 쉬운 방법을 찾아서

코드길이를 반으로 줄일수있었다.

using System;
class BackJoon
{
    static void Main(string[] args)
    {
        string[] T = Console.ReadLine().Split();
        int CookT = int.Parse(Console.ReadLine());
        int H = int.Parse(T[0]);
        int M = int.Parse(T[1]);
        M += CookT;
        H += M / 60;
        M = M % 60;
        if (H > 23)H -= 24;
        Console.WriteLine($"{H} {M}");
    }
}

 

요리하는데 걸리는 분 CookT를

현제 분에 더하고 60으로 나눈 몫을 시간에 더한다

그리고 분에는 60으로 나눈 나머지를 넣어준다.

 

마지막으로 시간이 23을 넘었을때 24를 빼주면 끝!

이전 문제와 마찬가지로 출력할때 시간과 분 사이에 공백을 넣어주어야 한다.