본문 바로가기
DEV/백준 알고리즘

백준 알고리즘 2753번(파이썬)

by 올커 2022. 9. 23.

 

백준 2753번_파이썬 알고리즘

Q. 백준 2753. 윤년

사용자로 부터 연도를 입력받고 윤년인지 아닌지 판단하는 프로그램을 작성한다. 결과값은 윤년이면 1, 아니면 0을 출력하도록 한다. 윤년의 조건은 아래와 같다.
 ※ 윤년의 조건 : '연도가 4의 배수이면서 100의 배수가 아닐 때' 또는 '400의 배수일 때'
(1) 입력 : 첫째 줄에 사용자로부터 연도 yr을 입력받는다. (1<= yr <= 4000, 자연수)
(2) 출력 : 입력받은 연도 yr을 판별하고, 윤년이면 '1', 아니면 '0'을 출력하는 프로그램을 작성한다.


A. 풀이

 - 사용자로부터 연도의 값을 입력받고, 조건에 맞는지 검사 후 결과값을 출력해주는 문제

# Q 백준 2753, 윤년
yr = int(input())

if ((yr%4 == 0)&(yr%100 != 0))|(yr%400 == 0):
    print(1)
else:
    print(0)

 

 

1) 변수 선언부

 - 사용자로부터 년도 값을 입력받고 정수형으로 변환하여 할당한다.

 

2) 조건문(if문)

 - 윤년의 조건 3가지가 주어졌다. 이를 검사하여 맞다면 '1', 아닌다면 '0'이므로 아래와 같이 조건을 짤 수 있다.

if ((yr%4 == 0)&(yr%100 != 0))|(yr%400 == 0):

 

 - 조건문은 3가지 조건을 위와 같이 만들어 주었다. and조건은 'and'나 '&'를 사용할 수 있고, or조건은 'or'나 '|'를 사용하면 된다. 본 문제에서는 '&'와 '|'를 사용하였다.

 


R. 리뷰

 - 문제에서 제시된 세가지 조건을 충족하는지 아닌지 판별하기 위해서 if문을 사용하였다. 문제가 간단해서 한줄에 작성하였지만, 문제가 더 복잡해지면 어떻게 작성할 지 한번쯤 생각해보는 것이 좋을 것 같다.

 - 윤년의 조건을 정확하게 알고있지는 않았는데, 코드 외에도 새롭게 알게되는 점이 있었던 문제였다. 4의 배수의 년도라고만 생각했는데 100의 배수는 아니어야 하고, 또 400의 배수는 예외라는 점이 새롭게 알게 된 점이다. 음력은 항상 새롭고 신기하다.

 

반응형

댓글