문제
구름LEVEL
난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.
level.goorm.io
내 풀이(Python3)
N = int(input())
T, M = map(int, input().split())
time = 0
for i in range(N):
time += int(input())
# 시간
hour = time // 60
if hour >= 24:
hour %= 24
#분
minute = time % 60
T += hour
M += minute
if M >= 60:
T += 1
M -= 60
if T >= 24:
T -= 24
print(T, M)
- time 변수에 더해야할 분수를 저장했다.
- 시간(hour)을 구하기 위해 60을 나누고 만약 hour가 24보다 큰 경우, 24의 나머지를 구해 넣었다.
- 분(minute)은 time의 나머지를 저장했다.
- T와 M에 각각 hour, minute을 더하고 M이 60보다 크면 T를 1 증가해주고 M은 60을 뺐다. 또 T는 24가 넘어가면 24를 빼주었다.
구름톤 해설
- 총 분수를 더하고 일수는 필요없기 때문에 일수(24*60)에 대한 것을 덜고 시와 분을 구하였다. 이렇게 하니 훨씬 간결하게 식을 짤 수 있다는 것을 알게 되었다.
회고
- 로직을 너무 빙글 돌려서 생각했던 것 같다. 중복코드가 많은 게 많이 아쉬웠다.
'코딩테스트' 카테고리의 다른 글
[코테/구름톤챌린지] 구름톤 챌린지 1주차 학습 일기 - 1일차 미션 (운동 중독 플레이어) (0) | 2023.08.20 |
---|---|
[코테/백준] Python 정수 제곱근 - 2417번 (0) | 2023.05.27 |
[코테/백준] Python 숫자 카드 2 - 10816번 (0) | 2023.05.24 |
[코테/백준] Python 한수 - 1065번 (0) | 2023.02.21 |
[코테/백준] Python 셀프 넘버 - 4673번 (0) | 2023.02.21 |