SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제
월 일로 이루어진 날짜를 2개 입력 받아, 두 번째 날짜가 첫 번째 날짜의 며칠째인지 출력하는 프로그램을 작성하라.
제출 답안
T = int(input())
days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for test_case in range(1, T + 1):
mm1, dd1, mm2, dd2 = map(int, input().split())
answer=0
if mm1==mm2:
answer = dd2-dd1+1
else:
m = mm2-mm1
for i in range(m+1):
if i==0:
answer += days[mm1-1]-dd1+1
elif i==m:
answer += dd2
else:
answer += days[mm1+i-1]
print(f"#{test_case} {answer}")
개선 답안
directory를 이용하면 좀 더 명확한 코드를 작성할 수 있다.
또한 두번째 일수는 무조건적으로 더해줘야 하기에 굳이 if문을 사용할 필요가 없었다.
T = int(input())
for t in range(1, T+1) :
m1, d1, m2, d2 = map(int, input().split())
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}
answer = 0
for i in range(m1, m2) :
if m1 == i :
answer += month[i] - d1 + 1
else :
answer += month[i]
answer += d2
print("#{} {}".format(t, answer))
참고 자료
[SWEA][파이썬] 1948. 날짜 계산기
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PnnU6AOsDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com T = int(
o-sae.tistory.com
'알고리즘 > Python' 카테고리의 다른 글
[Python | 프로그래머스] 겹치는 선분의 길이 (0) | 2023.05.02 |
---|---|
[Python | SWEA] 1966. 숫자를 정렬하자 (0) | 2023.05.01 |
[Python | SWEA] 1979. 어디에 단어가 들어갈 수 있을까 (0) | 2023.04.30 |
[Python | SWEA] 2007. 패턴 마디의 길이 (0) | 2023.04.29 |
[Python | 프로그래머스] 연속된 수의 합 (0) | 2023.04.28 |