출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

이 문제는 은근히 애를 먹었다. 주어진 조건 (윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때다.)이 은근히 복잡해서 생각 좀 하고 풀어야했다.

 

이 문제의 조건에 따르면

  1. 무조건 4의 배수여야 한다
  2. 4의 배수일때, 400의 배수이기도하면 윤년이다
  3. 하지만 100의 배수이지만 400의 배수가 아니면 윤년이 아니다

즉,

  1. 4의 배수가 아닌경우
  2. 4의 배수이기는 하나, 100의 배수이지만 400의 배수는 아닌 경우

이 두가지를 제외하면 윤년이라는 것이다. 이 두가지를 기억하며 다음과 같은 조건식을 짜봤다:

import sys

A = int(sys.stdin.readline())

if A%4 == 0:
    if A%100 == 0 and A%400 != 0:
        print(0)
    else:
        print(1)
else:
    print(0)

우선 첫번째 if문 - A를 4로 나눈 나머지가 0일때 (즉 4의 배수일때),

두번째 if문 - A가 100의 배수이지만 400의 배수는 아닌경우 에는 0을 출력해라.

 아닌 경우, 1을 출력해라

4의 배수가 아닌 경우 0을 출력해라.

 

생각보다 사고력이 요구되는 문제였다.