목차
728x90
반응형
SMALL
📁 문제
연도, 월, 일이 차례로 3개의 정수 Y, M, D로 주어졌을 때, Y 해에 M월 D일이 존재한다면 어떤 계절인지를 출력하고, 만약 존재하지 않는다면 -1을 출력하는 프로그램을 작성해보세요. 단, 함수를 이용하여 문제를 해결해주세요.
3~5월이 봄, 6~8월이 여름, 9~11월이 가을, 12~2월이 겨울이라 가정합니다.
단, 윤년(2월이 29일까지 있는 해)의 조건은 다음과 같습니다.
- 4의 배수라면 윤년입니다.
- 4의 배수이면서 100의 배수라면 윤년이 아닙니다.
- 4의 배수이면서 100의 배수지만 또한 400의 배수라면 윤년입니다.
- 나머지 경우에는 윤년이 아닙니다.
https://www.codetree.ai/missions/5/problems/that-season-that-day/description
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
📁 풀이
def func(y, m, d) :
if m == 1 :
if d > 31 :
return -1
else :
return "Winter"
elif m == 2 :
if d == 29 and ((y%100 == 0 and y%400 != 0) or (y%4 != 0)) :
return -1
if d > 29 :
return -1
else :
return "Winter"
elif m == 3 :
if d > 31 :
return -1
else :
return "Spring"
elif m == 4 :
if d > 30 :
return -1
else :
return "Spring"
elif m == 5 :
if d > 31 :
return -1
else :
return "Spring"
elif m == 6 :
if d > 30 :
return -1
else :
return "Summer"
elif m == 7 or m == 8 :
if d > 31 :
return -1
else :
return "Summer"
elif m == 9 :
if d > 30 :
return -1
else :
return "Fall"
elif m == 10 :
if d > 31 :
return -1
else :
return "Fall"
elif m == 11 :
if d > 30 :
return -1
else :
return "Fall"
elif m == 12 :
if d > 31 :
return -1
else :
return "Winter"
y, m, d = map(int, input().split())
print(func(y, m, d))
728x90
반응형
LIST