edu.goorm.io/learn/lecture/17033/cos-pro-2%EA%B8%89-%EA%B8%B0%EC%B6%9C%EB%AC%B8%EC%A0%9C-python
- 이 문제는 앞의 문제와 다르게 빈칸 채우는 문제이다.
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
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
def solution(start_month, start_day, end_month, end_day):
start_total = func_a(start_month, start_day)
end_total = func_a(end_month, end_day)
return end_total - start_total
start_month = 1
start_day = 2
end_month = 2
end_day = 2
ret = solution(start_month, start_day, end_month, end_day)
print('solution 함수의 반환 값은', ret, '입니다.')
- 빈칸 채우는 문제이지만 방법이 떠오르지 않아 아래 코드를 더 추가했다.(정답처리 안될 줄 알았지만 다행히 정답 처리 됨~~)
- for문으로 1부터 day만큼 더한 값을 total에 넣는다.
- 그리고 month가 1보다 크면 total에 month_list에서 지난 달의 날짜 수 + day -1을 하고
- month가 1이면 total에 day - 1을 한다.
- 이렇게 하면 end_total = 32, start_total = 1이 나와 31을 return한다.
- 빈칸만 채울 수 있는 방법을 좀 더 생각해보니
- total에 더할 때 day와 month를 순서를 바꾸면 코드 추가 없이 정답이 나왔다.
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
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
return total - 1
def solution(start_month, start_day, end_month, end_day):
start_total = func_a(start_month, start_day)
end_total = func_a(end_month, end_day)
return end_total - start_total
start_month = 1
start_day = 2
end_month = 2
end_day = 2
ret = solution(start_month, start_day, end_month, end_day)
print('solution 함수의 반환 값은', ret, '입니다.')
- 먼저 month에 대한 날짜수를 더하고 나서 day를 더하는 방식으로 작성하였다.
'COS PRO 2급 기출문제 - Python' 카테고리의 다른 글
[1차] 문제6) 369 게임 박수의 갯수 구하기 - Python3 (0) | 2020.12.31 |
---|---|
[1차] 문제5) 배열의 순서 뒤집기 - Python3 (0) | 2020.12.30 |
[1차] 문제4) 등장하는 가장 많은 수와 적은수 구하기 - Python3 (0) | 2020.12.21 |
[1차] 문제2) 쇼핑몰 등급별 할인 금액구하기 - Python3 (0) | 2020.12.19 |
[1차] 문제1) 단체 티셔츠를 주문하기 - Python3 (0) | 2020.12.19 |