datetime을 이용할 수도 있겠지만, 알고리즘 연습이니 라이브러리 없이 풀어내는걸 목표로 했다. days에 월별로 날짜수를 저장해둔 뒤에, 윤년 처리를 해주고 분 단위로 1년 대비 현재 진행 시간을 알아내었다. 하루 차이가 나길래 어디서 오류가 나는지 찾느라 은근 시간이 걸렸던 문제.
# 1340 days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] months = {'January':1, 'February':2, 'March':3, 'April':4, 'May':5, 'June':6, 'July':7, 'August':8, 'September':9, 'October':10, 'November':11, 'December':12} month, day, year, time = input().split() month = months[month] day = int(day[:-1]) year = int(year) si, bum = map(int, time.split(':')) if year%400==0 or (year%4==0 and year%100!=0): days[1] += 1 now=0 total=sum(days)*24*60 now += sum(days[:(month-1)])*24*60 now += (day-1)*24*60 now += si*60 now += bum print(now/total*100) datetime을 이용한 풀이 datetime 라이브러리에서 datetime를 불러온 뒤에 주어진 date_str을 date_format에 따라 parsed_datetime을 얻어낸다. 그 뒤엔 parsed_datetime뒤에 .year .month 같은 식으로 int 값을 얻어낼 수 있다. 나머지 과정은 동일하다.
...