이 문제는 은근히 애를 먹었다. 주어진 조건 (윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때다.)이 은근히 복잡해서 생각 좀 하고 풀어야했다.
이 문제의 조건에 따르면
- 무조건 4의 배수여야 한다
- 4의 배수일때, 400의 배수이기도하면 윤년이다
- 하지만 100의 배수이지만 400의 배수가 아니면 윤년이 아니다
즉,
- 4의 배수가 아닌경우
- 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을 출력해라.
생각보다 사고력이 요구되는 문제였다.
'알고리즘 테스트 > 백준 문제풀이 및 해설' 카테고리의 다른 글
<백준 문제풀이 - 1002번> 파이썬 - 터렛 (0) | 2020.10.14 |
---|---|
<백준 문제풀이 - 1001번> 파이썬 - A-B (0) | 2020.10.14 |
<백준 문제번호: 9498번> 파이썬 - 시험성적 (0) | 2020.10.13 |
<백준 문제번호: 1008번> 파이썬 - A/B (0) | 2020.10.12 |
<백준 문제번호: 1330번> 파이썬 - 두 수 비교하기 (0) | 2020.10.12 |