세용용용용 2024. 10. 15. 10:11

https://www.hackerrank.com/challenges/the-time-in-words/problem?isFullScreen=true

 

The Time in Words | HackerRank

Display the time in words.

www.hackerrank.com

 

나의 코드

#!/bin/python3

import math
import os
import random
import re
import sys

def timeInWords(h, m):
    answer = ''
    hour_dict = {1: "one", 2: "two", 3: "three", 4: "four", 
                 5: "five", 6: "six", 7: "seven", 8: "eight", 9: "nine",
                 10: "ten", 11: "eleven", 12: "twelve", 13: "thirteen"}
    min_dict = {0: "o' clock", 1: "one minute", 2: "two minutes", 3: "three minutes", 4: "four minutes", 
                5: "five minutes", 6: "six minutes", 7: "seven minutes", 8: "eight minutes", 9: "nine minutes",
                10: "ten minutes", 11: "eleven minutes", 12: "twelve minutes", 13: "thirteen minutes",
                14: "fourteen minutes", 15: "quarter", 16: "sixtee minutesn", 17: "seventeen minutes",
                18: "eighteen minutes", 19: "nineteen minutes", 20: "twenty minutes", 21: "twenty one minutes",
                22: "twenty two minutes", 23: "twenty three minutes", 24: "twenty four minutes",
                25: "twenty five minutes", 26: "twenty six minutes", 27: "twenty seven minutes",
                28: "twenty eigh minutest", 29: "twenty nine minutes", 30: "half"}
    if m == 0:
        answer = f"{hour_dict[h]} {min_dict[m]}"
    elif m <= 30:
        answer = f"{min_dict[m]} past {hour_dict[h]}"
    else:
        diff_m = 60-m
        answer = f"{min_dict[diff_m]} to {hour_dict[h+1]}"
    return answer
    
if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')
    h = int(input().strip())
    m = int(input().strip())
    result = timeInWords(h, m)
    fptr.write(result + '\n')
    fptr.close()

 

시간 복잡도

{hour_dict[h]} {min_dict[m]} :  딕셔너리 키값을 가지고 return 하므로 ( 상수 시간 복잡도 )
해당 알고리즘 시간복잡도는 상수 시간 복잡도 ( O(1) )