나는 두 개의 버튼이있는 바보 같은 오래 된 알람 시계를 가지고 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:00
810 이후부터 몇 분 (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], ...]
?