프로그래밍/백준
[파이썬] 백준 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번 알람 시계의 풀이가 필요하신 분은 밑의 링크를 참조해주세요!
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 으로 나타냈습니다.
파이썬에서
몫 | // |
나머지 | % |
다 아시겠지만 혹시 모르시는 분들은 숙지하시면 도움이 될 거에요!
그리고 출력해주시면 됩니다.
복잡한 논리없이 해결할 수 있는 문제였습니다.
감사합니다!
반응형