알고리즘 문제 풀기/SWEA

[SWEA 1948] 날짜 계산기 2가지 풀이

hibscus 2021. 2. 9. 00:10

 

 

 

 

 

months = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

for tc in range(1, int(input())+1):
    m1, d1, m2, d2 = map(int, input().split())
    ans = 0

    # 같은 달에 위치할 경우
    if m1 == m2:
        ans = d2 - d1 + 1

    else:
        # 시작하는 달
        ans = months[m1] - d1 + 1
        # 중간에 있는 달
        for i in range(m1 + 1, m2):
            ans += months[i]
        # 마지막 달
        ans += d2
    print(f'#{tc} {ans}')

 

 

 

for i in range(2, 13):
    months[i] += months[i-1]

for tc in range(1, int(input()) + 1):
    m1, d1, m2, d2 = map(int, input().split())

    # 1월부터 첫번째 날짜의 전달까지의 총 일수
    s1 = months[m1-1]
    s1 += d1

    # 1월부터 두번째 날짜 까지의 총 일수
    s2 = months[m2-1]
    s2 += d2

    print('#{} {}'.format(tc, s2 - s1 + 1))

 

 

 

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PjKXKALcDFAUq&categoryId=AV5PjKXKALcDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com