접미사 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