나는 두 개의 버튼이있는 바보 같은 오래 된 알람 시계를 가지고 hour와 minute. hour버튼 설정된 알람 시간을 증가하고, minute설정된 알람의 분 시간이 증가합니다. 그러나 일부 스마트 디자이너는 동시에 두 버튼을 누르면 의미를 가질 것을 깨달았다 눌러 결정 hour과 minute동시에하면 알람이 설정되도록 할 것입니다 12:00 am/ 0:00. 당신의 임무는이 동작을 시뮬레이션하는 것입니다.
태스크
시작 시간과 일련의 버튼 상태가 주어지면 종료 시간을 알아냅니다.
시작 시간부터 시작 발생할 때마다 시간을 증가 (1,0), 각각의 발생에 대한 분을 증가 (0,1)하고, 시간을 설정 0:00나타난 각 (1,1). (0,0)어떤 버튼도 누르지 않기 때문에 상태 는 무시해야합니다.
분과 시간에 더할 때 분 / 시간이 최대 값을 초과하면로 설정하십시오 0. 즉, 분 값을 증분으로 59설정하고 분 값을 0증분으로 23설정하고 시간 값을 증분하면 시간 값을로 설정해야합니다 0. 자신의 한계의 분 / 시간 값을 증가 시켜도의 분 증가, 예를 들어, 다른 값에 영향을 미치지 않습니다 10:59수율을 10:00하지 11:00.
예
입력 시간이 주어 13:58및 단계를 [(0,1),(0,1),(0,1),(0,0),(1,1),(1,0)],
(0,1). 이것은 minute누르는 것에 해당합니다 . 시간은 지금13:59이다.(0,1). 이것은 minute누르는 것에 해당합니다 . 시간은 지금13:00이다.(0,1). 이것은 minute누르는 것에 해당합니다 . 시간은 지금13:01이다.(0,0). 이것은 어느 버튼도 누르지 않는 것에 해당합니다. 영향을받지 않은 시간은 이제13:01(1,1). 이것은 두 버튼을 모두 누르는 것에 해당합니다. 시간은 지금0:00이다.(1,0)이것은 hour누르는 것에 해당합니다 . 시간은 지금1:00이다.
로 끝나기 때문에 1:00출력입니다.
I / O
입력은 시간과 일련의 버튼 상태로 구성됩니다. 출력은 한 번입니다.
입력 시간과 출력 시간은
- 2의 튜플
(hour, minute)또는(minute, hour)에서24와 같은 -hour 시간(13, 30)(hour범위0에23및minute범위0에59) - 그러나 이전에 동일한
12-hour 시간 부울am/pm스위치 (hour범위0로11하거나12및1행11과minute행0까지59). 0:00810 이후부터 몇 분 (0에서 1439까지 포함)- 동일한 정보를 인코딩하는 다른 형식
버튼 상태 순서는 예를 들어 부울 2 튜플 목록을 나타냅니다.
- 튜플 목록 :
[(0,1),(1,0),(0,0),(1,1)] - 공백으로 구분 된 문자열 :
"01 10 00 11" - 문자열 :
"01100011" - 4 기 :
[1,2,0,3] - 정수로 변환 :
99 - 동일한 정보를 인코딩하는 다른 형식
테스트 사례
time,steps -> output
06:49,[(0, 1)] -> 06:50
12:23,[(1, 0)] -> 13:23
02:23,[(0, 1), (1, 0)] -> 03:24
21:40,[(0, 1), (0, 1), (0, 1), (0, 1)] -> 21:44
13:10,[(0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (1, 1), (0, 1), (0, 1)] -> 00:02
21:33,[(1, 0), (0, 1), (1, 0), (0, 1)] -> 23:35
14:21,[(0, 1), (0, 1), (0, 1)] -> 14:24
02:39,[(0, 0), (0, 1)] -> 02:40
16:07,[(0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1)] -> 19:16
17:55,[(0, 1), (1, 0), (0, 1)] -> 18:57
15:55,[(1, 0), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (1, 0), (1, 0), (0, 1), (1, 0)] -> 23:00
22:11,[(0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1)] -> 00:19
03:58,[(1, 0), (0, 0), (0, 0), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1)] -> 07:03
13:02,[(0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0)] -> 16:06
04:37,[(1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (1, 0)] -> 08:47
00:01,[(0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1)] -> 03:08
02:58,[(1, 0), (1, 0), (0, 1)] -> 04:59
01:43,[(0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1)] -> 04:52
07:54,[(1, 0), (0, 1), (1, 0), (1, 0), (1, 1)] -> 00:00
09:33,[(0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1)] -> 10:38
09:01,[(0, 1), (0, 1)] -> 09:03
19:04,[(0, 1), (1, 0), (0, 1), (1, 0)] -> 21:06
11:17,[(0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (1, 1), (0, 1), (0, 1)] -> 00:02
19:32,[(0, 1), (1, 0), (0, 1), (1, 0), (1, 0), (1, 0)] -> 23:34
17:31,[(0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (0, 0), (1, 1), (0, 1)] -> 00:01
06:46,[(0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1)] -> 18:16
[[initialHour, initialMinute], [hourPressed1, minuitePressed1], [hourPressed2, minuitePressed2], ...]?