프로그래밍/백준

[파이썬] 백준 2525번: 오븐 시계

Liamm_ 2023. 1. 21. 06:52
반응형

백준 2525번 [오븐 시계]의 파이썬 코드 및 풀이입니다.

 

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

 

2525번: 오븐 시계

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

www.acmicpc.net

 

예제 입력 & 출력

 

입력

출력

14 30
20
14 50
17 40
80
19 0
23 48
25
0 13

 

코드

a,b = map(int, input().split())
c = int(input())
if b+c>59:
    a = a+ (b+c)//60
    if a > 23:
        a = a-24
    b = (b+c)%60
    print("%d %d" %(a,b))
else:
    b = b+c
    print("%d %d" %(a,b))

 

풀이

문제의 목적

시간을 더하는 것

 

2884번 알람 시계와 아주 비슷한 문제입니다.

만약 2884번 알람 시계의 풀이가 필요하신 분은 밑의 링크를 참조해주세요!

https://liamm.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B0%B1%EC%A4%80-2884%EB%B2%88-%EC%95%8C%EB%9E%8C-%EC%8B%9C%EA%B3%84

 

2884번 문제와 다르게 이번에는 시작 시간과 경과 시간을 입력하면 그 둘을 더한 최종 시간을 나타내라는 문제입니다.

 

b,c 즉 분끼리 더한 값이 59보다 크다면 시간이 올라가야겠죠?

 

그래서 시간이 얼마나 올라가야 되는지 계산하는 방법은

(b+c)//60 

이렇게 60으로 나눈 몫을 구해주면 됩니다.

 

    if a > 23:    #5번째 줄
        a = a-24

그런데!! 중첩된 if에서 만약 a가 23보다 크면, 다시 0부터 시작해야하기 때문에

24를 빼준 모습입니다.

 

그리고 분은 다시 b+c를 60으로 나눈 나머지로 쓰면 되므로,

(b+c)%60 으로 나타냈습니다.

 

파이썬에서

//
나머지 %

다 아시겠지만 혹시 모르시는 분들은 숙지하시면 도움이 될 거에요!

 

그리고 출력해주시면 됩니다.

 

복잡한 논리없이 해결할 수 있는 문제였습니다.

 

감사합니다!

반응형