얼마나 남았습니까?
최근에 나는 휴대 전화에서 5 분 타이머를 사용하여 피자를 만들고있었습니다. 누군가 들어 와서 얼마나 오래 남았는지 물었을 때, 나는 처음에 질문에 대답하는 방법에 대해 잠시 혼란스러워했습니다. 현재 순간의 타이머가 3:47 인 경우 '3 분 49 초'를 큰 소리로 읽을 때까지 시간이 바뀌었을 것입니다. 따라서, 나는 타이머가 도달 할 것이라는 점을 한 번에 찾을 필요 단지 내가 그것을 다 읽기로한다.
이 과정을 자동화하는 것은 당신의 도전입니다. 적절한 형식의 시간 ( ":"구분 또는 분 및 초 인수)이 주어진 경우 타이머를 가져 오는 데 걸리는 시간과 동일한 시간이 걸리는 현재 순간부터 가장 빠른 시간을 출력하십시오. 에. 각 음절을 읽는 데 1 초가 걸린다고 가정합니다.
추가 규칙
- '분'과 '초'는 각각 두 음절로, 그리고 그들 사이의 '및'으로 계산해야합니다.
- 피자는 요리하는 데 59:59를 넘지 않습니다.
- '11 분 0 초 '는 10 음절이 아닙니다 : '11 분'(즉, 5 음절)으로 단순화해야합니다. '0 분 7 초'도 4 음절로만 계산됩니다.
- 당신의 프로그램은 어떤 형식으로도 출력을 줄 수 있습니다 :의 배열
[minutes, seconds]
, 또는 심지어<minutes> minutes and <seconds> seconds
(일반 텍스트로 쓰여진). - 표준 허점이 적용됩니다.
- 이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
테스트 사례
모든 입력 (minutes, seconds)
(4, 47) = (4, 38) (Four MiNutes And ThirTy Eight SeConds - 9 syllables/seconds)
(1, 1) = (0, 56) (FifTy-Six SeConds - 5 syllables/seconds)
(59, 57) = (59, 46) (FifTy Nine Minutes And Forty Six SeConds - 11 syllables/seconds)
(0, 10) = null/error/0 (no positive answer)
음절 수 참조
참고로, 각 수의 음절 수는 최대 59 개입니다.
0,0 (does not need to be counted)
1,1
2,1
3,1
4,1
5,1
6,1
7,2
8,1
9,1
10,1
11,3
12,1
13,2
14,2
15,2
16,2
17,3
18,2
19,2
20,2
21,3
22,3
23,3
24,3
25,3
26,3
27,4
28,3
29,3
30,2
31,3
32,3
33,3
34,3
35,3
36,3
37,4
38,3
39,3
40,2
41,3
42,3
43,3
44,3
45,3
46,3
47,4
48,3
49,3
50,2
51,3
52,3
53,3
54,3
55,3
56,3
57,4
58,3
59,3