윤년
- 윤년을 구하는 문제다. 윤년은 4의 배수이면서 100의 배수가 아니거나 400의 배수여야만하는 해를 뜻한다.
이것을 코드로 표현하는 방법은 여러가지가 있다.
1. 논리연산자
- 기본 문법에서 배웠듯이 'and' 'or' 'not'을 이용해 다중 if문을 간결하게 표현한 방법이다.
y = int(input())
#윤년은 4의 배수 and ((not100의배수) or 400의 배수)라고 생각해보자.
def leap_year(year):
return (year % 4 == 0) and ((not(year % 100 ==0)) or (year % 400 ==0))
if leap_year(y) == True:
print(1)
else:
print(0)
사실 처음부터 이런식으로 접근하는 것은 어려울 수 있다. 그러나, 훨씬 가독성이 좋아지므로 논리적으로 조건을 파악해 간단하게 정리하면 충분히 쉽게 풀 수 있다.
2. 다중 if문
- 말그대로 if문을 중첩해서 풀어내는 방식이다. if elif else를 통해 예외가 발생하지 않도록 틀어막는 것을 잘 해야한다.
y = int(input())
#윤년은 4의 배수 and ((not100의배수) or 400의 배수)라고 생각해보자.
def leap_year(year):
if (year % 4 == 0):
if not(year % 100 ==0):
return 1
elif (year % 400 ==0):
return 1
else:
return 0
else:
return 0
print(leap_year(y))
이렇게 보면 확실히 2번보다 1번이 쉽게 이해할 수 있는 코드라는 것을 알 수 있다.