just inside

[SWEA/D2] 1948. 날짜 계산기 본문

coding test/SWEA

[SWEA/D2] 1948. 날짜 계산기

방울도마도 2024. 10. 31. 17:36
728x90

[문제 링크]

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

 

SW Expert Academy

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

swexpertacademy.com


[문제 설명]

월 일로 이루어진 날짜를 2개 입력 받아, 두 번째 날짜가 첫 번째 날짜의 며칠째인지 출력하는 프로그램을 작성하라.


[제약 사항]

 

월은 1 이상 12 이하의 정수이다. 각 달의 마지막 날짜는 다음과 같다.

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가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 4개의 수가 주어진다.

첫 번째 수가 월을 나타내고 두 번째 수가 일을 나타낸다. 그 다음 같은 형식으로 두 번째 날짜가 주어진다.

 

[출력]

 

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다. (t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)


제출 코드

t = int(input())

for i in range(1, t+1):
	# 두 날짜 입력받기
    m1, d1, m2, d2 = map(int, input().split())
    # 각 월의 마지막 날짜 저장
    days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    # 각 날짜의 총 일수 계산
    td1 = sum(days[:m1-1]) + d1
    td2 = sum(days[:m2-1]) + d2
    print('#'+str(i),td2 - td1 + 1)

 

풀이

  • 입력받은 날짜의 총 일수를 계산해준다.
    • 앞 월까지의 일수 합 + 이번 달 일수

알아둘 사항

  •  
728x90