시간과 분 두 개의 입력이 있다고 가정합니다. 시간을 텍스트 형식으로 표시해야 합니다. 이것은 다음과 같습니다 -
- 8:00 :8시
- 8:01 :8시 1분
- 8:10 :8시 10분
- 8:15 :8시 4분
- 8:30 :8시 반
- 8:40 :20분 ~ 9시
- 8:45 :9시까지
- 8:47 :13분에서 9시까지
- 8:28 :8시 28분
따라서 입력이 h =9, m =42와 같으면 출력은 18분에서 10분이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- text:=다음과 같은 30가지 다른 숫자 값에 대한 텍스트를 포함하는 목록:["one", "two", "three", "four", "five", "six", "seven", "eight" ,"아홉","열", "열한","열둘", "열셋", "열넷", "사분의 일", "열여섯","열일곱", "열여덟","열아홉", "스물", " 스물하나", "스물둘", "스물셋", "스물넷", "스물다섯", "스물여섯", "스물일곱", "스물여덟", "스물- 아홉", "반"]
- op:=빈 문자열
- m이 0과 같으면
- op :=text[h - 1] "시" 연결
- 그렇지 않으면 m이 30과 같을 때
- op :=text[m - 1] "과거" 연결 text[h - 1] 연결
- 그렇지 않으면 m이 1과 같을 때
- op :=text[m - 1] concatenate " 분 과거 " concatenate text[h - 1]
- 그렇지 않으면 m이 15와 같을 때
- op :=text[m - 1] "과거" 연결 text[h - 1] 연결
- 그렇지 않으면 m − 30이 0이 아닌 경우
- op :=text[m - 1] concatenate " 분 과거 " concatenate text[h - 1]
- 그렇지 않으면 m이 45와 같을 때
- op :="쿼터를 " 연결 텍스트[h]
- 그렇지 않으면
- op :=text[(60 - m) -1] "분을 " 연결하여 텍스트를 연결[h]
- 반환 작업
예
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(h, m): text=["one", "two", "three", "four", "five", "six", "seven", "eight","nine","ten", "eleven", "twelve", "thirteen", "fourteen", "quarter", "sixteen","seventeen", "eighteen", "nineteen", "twenty", "twenty-one","twenty-two", "twenty-three", "twenty-four", "twentyfive"," twenty-six", "twenty-seven", "twenty-eight", "twenty-nine", "half"] op="" if (m == 0): op = text[h - 1] + " o' clock" elif (m == 30): op = text[m - 1]+ " past " + text[h - 1] elif (m == 1): op = text[m - 1] + " minute past " + text[h - 1] elif (m == 15): op = text[m - 1]+ " past " + text[h - 1] elif (m < 30): op = text[m - 1] + " minutes past " + text[h - 1] elif (m==45): op = "quarter to " + text[h] else: op = text[(60 - m)-1] + " minutes to " + text[h] return op h = 9 m = 42 print(solve(h, m))
입력
9, 42
출력
eighteen minutes to ten