Python/알고리즘 - 백준

[백준] 2753 : 윤년 (파이썬)

Jong_seoung 2022. 10. 7. 18:18
반응형

문제 링크 : https://www.acmicpc.net/problem/2753

 

2753번: 윤년

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서

www.acmicpc.net

 


 


문제  요약

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.

윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.

 

TRY CODE

Y=int(input())
if Y%4 == 0 :
    if Y%100 == 0:
        if Y%400 ==0:
            print(1)
        else:
            print(0)
    else:
        print(1)
else:
    print(0)

문제점

  1. 백준 사이트에 제출을 했을 때 답은 맞다고 떴는데 코드가 너무 복잡하고 비효율 적인 것 같았다.

해결법

  • and 와 or을 통해서 코드를 간단히 만들었다.

CODE

Y = int(input())

if ((Y%4 == 0)and(Y%100 != 0)) or (Y%400 == 0):
    print('1')
else:
    print('0')

 

 

풀이

1. Y을 int 형으로 입력받았다

Y = int(input())

2. Y를 4로 나눈 나머지가 0이고 Y를 100으로 나눈 나머지가 0이 아니거나  Y를 400으로 나눈 나머지가 0

  • 참이면 1을 출력
  • 거짓이면 0을 출력
if ((Y%4 == 0)and(Y%100 != 0)) or (Y%400 == 0):
    print('1')
else:
    print('0')

 

 

반응형