알고리즘/코드워

[python]Human readable duration format

(ㅇㅅㅎ) 2020. 4. 3. 21:29
728x90
반응형

https://www.codewars.com/kata/52742f58faf5485cae000b9a/train/python

 

Codewars: Train your coding skills

Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.

www.codewars.com

더보기

내 코드

# My Code
def format_duration(seconds):
    y, d, h, m, s, answer = ' year'' day'' hour'' minute'' second'''
    # 0일 경우 now 리턴
    if seconds == 0return 'now'
 
    # 시간 계산
    minute = seconds // 60
    seconds = seconds % 60
 
    hour = minute // 60
    minute -= hour * 60
 
    day = hour // 24
    hour -= day * 24
 
    year = day // 365
    day -= year * 365
 
    tmp = [year, y, day, d, hour, h, minute, m, seconds, s]
    answer_list = []
 
    for i in range(len(tmp)):
        if i % 2 == 0 and tmp[i] != 0:
            # 복수일 경우는 's'를 붙여줘야 한다.
            if tmp[i] > 1:
                tmp[i+1+= 's'
            answer_list.append(str(tmp[i]) + tmp[i+1])
 
    return (', '.join(answer_list[:-1]) + ' and ' + answer_list[-1if len(answer_list)>1 else answer_list[0])
 
if __name__=='__main__':
    answer = format_duration(1)
    print(answer)
    answer = format_duration(62)
    print(answer)
    answer = format_duration(120)
    print(answer)
    answer = format_duration(3600)
    print(answer)
    answer = format_duration(3662)
    print(answer)
 

전에 한번 도전했다가 풀지 못했던 문제였다.

문제를 풀고 다른 사람 코드를 보니 이렇게까지 고민할 문제였나라는 생각이 들었다.

반응형