728x90
https://www.acmicpc.net/problem/2753
문제)
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
풀이)
풀이1)
year=int(input())
if((year%4==0)and(year%100!=0)):
print(1)
elif((year%4==0)and(year%400==0)):
print(1)
else:
print(0)
더 깔끔하게 정리하면,
year=int(input())
if((year%4==0)and(year%100!=0)):
print(1)
elif(year%400==0):
print(1)
else:
print(0)
if문의 해당되는 조건은 4의 배수이면서 100의 배수가 아닐때의 조건
elif문의 조건으로는 4의 배수이면서 400의 배수인것을 찾는것
그밖의 값은 else로 처리 해주는 방식과
풀이2)
year=int(input())
if(((year%4==0)and(year%100!=0))or(year%400==0)):
print(1)
else:
print(0)
if문에 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때를 논리연산자로 묶어서 한번에 사용하는 방법이 있다.
논리연산자
연산자 | 의미 | 설명 | |
and | 그리고 | 두 개의 연산자가 모두 참일 경우에만 True를 출력하고, 그 외의 경우에는 모두 False를 출력한다. | |
or | 또는 | 두 개의 연산자 중에서 하나라도 참이면 True를 출력하고, 두개가 모두 거짓일때만 False를 출력한다. | |
not | 아니다 | 볼을 반대로 전환한다. |
and 연산자
좌변 | 우변 | 결과 |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
or 연산자
좌변 | 우변 | 결과 |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
not 연산자
>>>print(not True)
False
비교연산자
연산자 | 설명 |
>= | 크거나 같다 |
<= | 작거나 같다 |
> | 크다 |
< | 작다 |
!= | 다르다 |
== | 같다 |
728x90
'프로그래밍 > Python(파이썬)' 카테고리의 다른 글
[백준] 2884: 알람시계-python[파이썬] (0) | 2022.03.23 |
---|---|
[백준] 14681: 사분면 고르기-python[파이썬] (0) | 2022.03.23 |
[백준] 9498: 시험성적-python[파이썬] (0) | 2022.03.22 |
[백준] 1330: 두 수 비교하기-python[파이썬] (0) | 2022.03.22 |
[백준] 2588: 곱셈-python[파이썬] (0) | 2022.03.22 |