SWEA 1948. 날짜 계산기

JeanDeluge·2023년 3월 2일

SWEA

목록 보기
6/8

풀이과정

  1. 각 월에 맞는 일 수에 맞게 딕셔너리 만들어 놓는다.
  2. 첫달에서부터 끝달까지 for문을 사용하여 일자를 더한다.
    2-1. 첫달의 경우에는 전체 일수 - 현재 날짜 + 1 을 더하여 남은 한달의 일수를 계산하여 더한다.
    2-2. 마지막달의 경우에는 전체 일수를 더하는게 아니라 현재 날짜를 더하면 마지막 달의 일자만큼 더할 수 이싿.
    2-3. 위 두 경우가 아닌 경우에는, 1번의 딕셔너리에 맞는 일수를 더한다.
for test_case in range(1, T + 1):
    # ///////////////////////////////////////////////////////////////////////////////////
    first_m, first_d, second_m, second_d = map(int, input().split())
    monthly = {1: 31, 2: 28, 3:31, 4:30, 5:31, 6:30, 7:31, 8:31, 9:30, 10:31, 11:30, 12:31 }
    
    day = 0
    for month in range(first_m, second_m+1):
        if month == first_m:
            day += monthly[month] - first_d + 1
        elif month == second_m:
            day += second_d
        else:
            day += monthly[month]
    
    print('#{}'.format(test_case), day)

리뷰

13분 걸렸다.
일 수를 딕셔너리로 저장하는 방법말고 다른 방법이 있는지 보았다.
datetime 라이브러리를 사용하면,
datetime.date(year, month, date) - dateime.date(year, month, date)
로 일수를 계산할 수 있다.

0개의 댓글