티스토리 뷰
반응형
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net
x = int(input())
if(((x%4 ==0) & (x%100!=0)) | (x%400==0)): print(1)
else: print(0)
간단한 수학 문제이다.
(윤년은 4의 배수이면서, 100의 배수가 아닐 때) 또는 (400의 배수일 때)이다.
여기서 4의 배수일려면, x를 4로 나눈 나머지가 0이어야 한다.
마찬가지로 100의 배수일려면 100으로 나눈 나머지가 0이어야 하므로 그것만 아니면 된다.
또 400의 배수일려면 400으로 나눈 나머지가 0이어야 한다.
일단 if문에서 첫번째 조건을 &(and) 연산자로 묶어서 (x%4 ==0) & (x%100!=0) 일때만 실행되게 만들어주고,
또는 연산자는 |(or) 이므로 (x%400==0) 까지 or로 묶어주면 된다.
=와 ==의 차이는 결과가 대입이느냐 True/False로 나오느냐로 갈라진다.
a=1 을 하면 a에 1을 대입한다가 되고,
a==1 이면 a가 1이냐? 를 묻는 질문이 된다.
확실히 구분해서 쓰자.
반응형