
시작 날짜와 끝 날짜가 주어질 때, 두 날짜가 며칠만큼 떨어져 있는지(D-day)를 구하려고 합니다. 이를 위해 다음과 같이 3단계로 간단히 프로그램 구조를 작성했습니다. (단, 윤년은 고려하지 않습니다.)
시작 날짜의 월, 일을 나타내는 startmonth, startday, 끝 날짜의 월, 일을 나타내는 endmonth, endday가 매개변수로 주어질 때, 시작 날짜와 끝 날짜가 며칠만큼 떨어져 있는지 return 하도록 solution 함수를 작성했습니다. 이때, 위 구조를 참고하여 중복되는 부분은 func_a라는 함수로 작성했습니다. 코드가 올바르게 동작할 수 있도록 빈칸을 알맞게 채워주세요.
시작 날짜이 월, 일을 나타내는 startmonth, starday, 끝 날짜의 월,일을 나타내는 endmonth, endday가 solution 함수의 매개변수로 주어집니다.
시작 날짜와 끝 날짜가 며칠만큼 떨어져 있는지 return 해주세요.

▶ month_list배열에 달에 며칠이 있는지 써넣는다.
▶ for문을 배열-1까지 돌려서 달의 날짜를 더한 후 day의 날짜를 더한다.
def func_a(month, day):
month_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
total = 0;
for i in range(month-1):
total += month_list[i]
total += day - 1
return total - 1
def func_a(month, day):
month_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
total = 0
for i in range(1, day):
total += i
if month > 1:
total += month_list[month-2] + day-1
else:
total += day-1
return total - 1
for문으로 1부터 day만큼 더한 값을 total에 넣는다.
그리고 month가 1보다 크면 total에 month_list에서 지난 달의 날짜 수 + day-1을 하고 month가 1이면 total에 day-1을 한다.
다른 사람의 코드를 보는 것은 나의 코드를 보는 것 보다 어려운 일인 것 같다. 개발자는 나혼자 하는 것이 아닌 다 함께 같이 하는 일이 많기 때문에 다른 사람의 코드도 읽는 연습을 많이 해두자!