접미사 am 또는 pm이 있는 12시간제 시간을 나타내는 문자열이 있고 정수 n도 주어진다고 가정하면 시간에 n분을 추가하고 동일한 형식으로 새 시간을 반환합니다.
따라서 입력이 s ="8:20pm" 및 n =150과 같으면 출력은 10:50pm이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다.
-
h, m :=s에서 시와 분 부분을 취합니다.
-
h :=h 모드 12
-
시간 s가 'pm'이면
-
h :=h + 12
-
-
t :=h * 60 + m + n
-
h :=t/60의 몫, m :=t/60의 나머지
-
h :=h 모드 24
-
접미사 :=h <12이면 'am', 그렇지 않으면 'pm'
-
h :=h 모드 12
-
h가 0과 같으면
-
시간 :=12
-
-
시간 반환 h:m 접미사
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution:
def solve(self, s, n):
h, m = map(int, s[:-2].split(':'))
h %= 12
if s[-2:] == 'pm':
h += 12
t = h * 60 + m + n
h, m = divmod(t, 60)
h %= 24
suffix = 'a' if h < 12 else 'p'
h %= 12
if h == 0:
h = 12
return "{:02d}:{:02d}{}m".format(h, m, suffix)
ob = Solution()
print(ob.solve("8:20pm", 150)) 입력
"8:20pm", 150
출력
10:50pm