Python 알고리즘 - 윤년

Code_Alpacat·2022년 1월 2일
0

Python 알고리즘

목록 보기
5/15

윤년

  • 윤년을 구하는 문제다. 윤년은 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번이 쉽게 이해할 수 있는 코드라는 것을 알 수 있다.

profile
In the future, I'm never gonna regret, cuz I've been trying my best for every single moment.

0개의 댓글