
문제
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
실행 결과

코드(Python)
n = input().split(" ")
m1, d1, m2, d2 = int(n[0]), int(n[1]), int(n[2]), int(n[3])
days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
sum_days = 1
# 같은 달일 경우
if m1 == m2:
sum_days = d2 - d1 + 1
# 다른 달일 경우
else:
sum_days += days[m1] - d1 # m1의 남은 일수
for m in range(m1 + 1, m2): # 사이에 있는 월의 총 일수
sum_days += days[m]
sum_days += d2 # m2의 일수
print(sum_days)
코드 설명
먼저 같은 달일 경우와 다른 달일 경우를 나눠야 한다.
다른 달일 경우, 일 수 계산할 때 다음의 세 단계로 나눈다.
1. 첫번째로 입력받은 월의 나머지 일수
2. 첫번째와 두번째 월 사이에 있는 월의 일수
3. 두번째로 입력받은 월의 나머지 일수
이 때, 일일히 조건문을 이용하는 것보다 각 월마다 몇 일이 있는지를 배열로 저장하여 코드를 간결하게 구현할 수 있다.
여기서는 days라는 이름으로 저장했으며, 월과 index를 매핑하기 쉽게 하기 위해 0번째 원소를 0으로
'PS' 카테고리의 다른 글
[코드트리] 2차원 배열과 패턴 / 지그재그로 숫자 채우기 (0) | 2024.07.10 |
---|---|
[코드트리] Notation / 진수 to 진수 (0) | 2024.06.21 |
[코드트리] 객체 정렬 / 정렬된 숫자 위치 알아내기 (0) | 2024.06.19 |
코드트리: a/b 출력 응용 (0) | 2024.06.15 |
코드트리: 오름차순과 내림차순 정렬 (0) | 2024.05.31 |