https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PnnU6AOsDFAUq 

 

SW Expert Academy

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

swexpertacademy.com

날짜 계산기


# 1948. 날짜 계산기
month = {1:31, 2:28, 3:31, 4:30, 5:31, 6:30, 7:31, 8:31, 9:30, 10:31, 11:30, 12:31}

T = int(input())

for tc in range(1, T+1):
    ans = 0
    fm, fd, sm, sd = map(int, input().split())
    if fm == sm:
        ans = sd - fd
    else:
        for i in range(fm, sm+1):
            if i == fm:
                ans += (month[i] - fd)
            elif i == sm:
                ans += sd
            else:
                ans += month[i]
    print('#{} {}'.format(tc, ans+1))

처음에는 month를 모두 if else로 처리해야하나 막막했는데

딕셔너리를 이용해서 쉽게 풀 수 있었다

월이 같은 경우에는 날짜만 빼주면 되니깐

fm==sm인 경우는 미리 계산해주고,

월이 다른 경우를 else에서 계산해주었다.

 

month(key)로 딕셔너리 values값에 접근하고 그 수를 더해주면 된다!

 

날짜는 세는 당일도 쳐야하기 때문에 마지막에 ans에서 +1

반응형

+ Recent posts