[백준/BOJ] 2525번: 오븐 시계 (Python) 풀이Dev/PS2024. 5. 19. 22:50
Table of Contents

Baekjoon Online Judge (BOJ) 의 2525번 문제인 '오븐 시계' 를 풀어보았다.
전 문제인 '알람 시계' 문제보다는 조금 고민하면서 풀었던 것 같다.
[문제 정보]
https://www.acmicpc.net/problem/2525
문제 개요:
입력으로 오리구이를 시작하는 시간, 오븐구이를 하는데 필요한 시간이 주어지며, 두 시간을 합쳐 오븐구이가 끝나는 시각을 구하면 된다.
※ 주의 사항: 문제에서의 인공지능 오븐은 오븐구이가 끝나는 시간을 '분 단위' 로 계산해주며, 입출력 시간 모두 24시간 표현을 사용한다.
알고리즘:
- 입력받은 분(M)이 45보다 작을 경우, 시(H)에서 1을 빼고 분에는 60을 더해준다.
- 먼저 입력받은 시간(startHour)을 모조리 분단위로 변환하고, 변환한 시간을 입력받은 분(startMin)과 더해준다.
- 이렇게 얻은 분단위 시간과 요리에 필요한 시간(needTime)을 더해준다.
- 오븐구이 요리의 총 시간을 60으로 나눈 몫(시)이 오븐구이가 끝나는 시각의 시(endHour)가 된다.
- 오븐구이 요리의 총 시간을 60으로 나눈 나머지(분)가 오븐구이가 끝나는 시각의 분(endMin)이 된다.
- 문제가 24시간 표현을 사용하므로, endHour가 24보다 크거나 같을 경우 24를 빼준다. (분은 이미 계산되었으므로 관계가 없다.)
코드:
startHour, startMin = map(int, input().split())
needTime = int(input())
startHour *= 60 # 시간을 모조리 분단위로 변환한다.
startMin += startHour # 시간을 변환한 분과 입력받은 분을 더해준다.
startMin += needTime # 시작 시간과 필요한 시간을 더해준다.
endHour = startMin // 60 # 오븐구이 총 요리 시간(분)을 60으로 나눈 몫(시)을 endHour 변수에 초기화해준다.
endMin = startMin % 60 # 총 요리 시간을 60으로 나눈 나머지(분)를 endMin 변수에 초기화한다.
if endHour >= 24: # 끝나는 '시'가 24보다 크거나 같을 경우
endHour = endHour - 24 # 24를 빼준다. (분은 이미 계산되어서 상관없음)
print(endHour, endMin)

위 풀이에 대한 질문이나 틀린 정보가 있다면 댓글로 말씀해 주시면 감사하겠습니다!
728x90
'Dev > PS' 카테고리의 다른 글
| [백준/BOJ] 8393번: 합 (Python) 풀이 (0) | 2024.05.20 |
|---|---|
| [백준/BOJ] 10950번: A+B - 3 (Python) 풀이 (0) | 2024.05.20 |
| [백준/BOJ] 2739번: 구구단 (Python) 풀이 (0) | 2024.05.19 |
| [백준/BOJ] 2480번: 주사위 세개 (Python) 풀이 (0) | 2024.05.19 |
| [백준/BOJ] 2884번: 알람 시계 (Python) 풀이 (0) | 2024.05.19 |
@KangJerry :: 강제리의 개발 이야기
실력있는 개발자가 되고싶은 22학번 대학생입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!