문제

https://www.acmicpc.net/problem/2753

 

2753번: 윤년

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

www.acmicpc.net

어떤 연도를 입력했을 때 그 해가 윤년인지 아닌지를 구하시오(윤년이면 1, 아니면 0)

 

풀이

윤년이 뭔고 하니… 4의 배수 해가 되면 2월이 28일이 아니라 29일까지 있다. 그래서 윤년 끼면 내 생일이 2월 28일 다음날이 된다. 원래 윤년이 안 끼면 2월과 3월은 날짜가 같기 때문.

a=int(input())
if a % 4 == 0 and a % 100 != 0:
    print(1)
elif a % 400 == 0:
    print(1)
else: 
    print(0)

윤년의 조건은

  1. 4의 배수 해이면서 100의 배수가 아닌 해
  2. 400의 배수인 해

둘 중 하나이다. 그래서 저 조건에 부합하지 않으면 다 else로 처리하면 장땡. a % b는 a를 b로 나눈 나머지.

'BOJ > [BOJ] Python' 카테고리의 다른 글

백준 8393번 풀이  (0) 2022.08.18
백준 10950번 풀이  (0) 2022.08.18
백준 14681번 풀이  (0) 2022.08.18
백준 2884번 풀이  (0) 2022.08.18
백준 2588번 풀이 및 응용  (0) 2022.08.18

Profile

Lv. 34 라이츄

요즘 날씨 솔직히 에바참치김치꽁치갈치넙치삼치날치기름치준치학꽁치임..