💻Develop/💡Algorithm
🌱#2753 윤년
Guraeng
2023. 7. 19. 11:44
문제
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net
풀이
year = int(input())
if ((year % 4 == 0 and year % 100 != 0) or year % 400 == 0 ):
print(1)
else :
print(0)
문제를 그대로 조건화 해서 작성하면 위 코드와 같다.
4의 배수 이면서(and) 100의 배수가 아닐 때 또는(or) 400의 배수일 때
각각의 조건을 분리한다면 A 조건과 B 조건이 나온다.
A 조건 : 4의 배수 이면서 100의 배수가 아닌 것
B 조건 : 400의 배수인 것
이것을 식으로 표현하자면 A or B
그렇다면 A의 조건을 좀더 파헤쳐보자.
A의 조건 안에는 두가지의 조건 x, y가 존재한다.
x 조건 : 4의 배수
y 조건 : 100의 배수
이것을 식으로 표현한다면 x and y
그렇다면 각각의 조건들을 식으로 표현한다면?
4의 배수 : year % 4 == 0
100의 배수 : year % 100 != 0
400 의 배수 : year % 400 == 0
이것을 if문으로 조합하면
if ( A or B)
> if ( (x and y) or B)
결과적으로
if ((year % 4 == 0 and year % 100 != 0) or year % 400 == 0 ) 이러한 조건문이 나오게 된다.