반응형
문제 링크 : https://www.acmicpc.net/problem/2753
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net
문제 요약
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
TRY CODE
Y=int(input())
if Y%4 == 0 :
if Y%100 == 0:
if Y%400 ==0:
print(1)
else:
print(0)
else:
print(1)
else:
print(0)
문제점
- 백준 사이트에 제출을 했을 때 답은 맞다고 떴는데 코드가 너무 복잡하고 비효율 적인 것 같았다.
해결법
- and 와 or을 통해서 코드를 간단히 만들었다.
CODE
Y = int(input())
if ((Y%4 == 0)and(Y%100 != 0)) or (Y%400 == 0):
print('1')
else:
print('0')
풀이
1. Y을 int 형으로 입력받았다
Y = int(input())
2. Y를 4로 나눈 나머지가 0이고 Y를 100으로 나눈 나머지가 0이 아니거나 Y를 400으로 나눈 나머지가 0
- 참이면 1을 출력
- 거짓이면 0을 출력
if ((Y%4 == 0)and(Y%100 != 0)) or (Y%400 == 0):
print('1')
else:
print('0')
반응형
'Python > 알고리즘 - 백준' 카테고리의 다른 글
[백준] 2908 : 상수 (파이썬) (0) | 2022.10.08 |
---|---|
[백준] 2920 : 음계 (파이썬) (0) | 2022.10.08 |
[백준] 2884 : 알람시계 (파이썬) (0) | 2022.10.07 |
[백준] 2675 : 문자열 반복 (파이썬) (0) | 2022.10.06 |
[백준] 2577 : 숫자의 갯수 (파이썬) (2) | 2022.10.06 |