1. 문제
- 윤년이면 1, 아니면 0 출력하기
- 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
2. 출제의도 파악하기
- 여러 조건을 충족하는 코드를 짜볼테냐?
3. 풀이
- 일단 지난 번의 숏코딩 형태로 풀어보았다.
year = int(input())
print('01'[(year%4 == 0) & (year % 100 != 0) | (year%400 == 0)])
대괄호 안의 조건이 참이면 1이고, 거짓이면 0이 되어 인덱스 역할을 할 수 있다.
- if문 활용: 문제 지문 그대로 조건을 적용해주었다.
year = int(input())
if (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
print(1)
else:
print(0)
4. 남의 버전 분석
- (숏코딩) print() 함수 안에 조건을 요약했다. ' + '연산자와 'True', 'False'의 조합을 활용함.
# 숏코딩
y=int(input())
print(+((y%100 or y//100)%4<1))
만약 y = 2000 이라면,
((y%100 or y//100) % 4 < 1) 의 결과는 True가 된다.
그리고 +True가 연산되어 숫자 1이 출력된다.
자세한 내용은 5. 출력 확인에서 확인할 수 있다.
5. 출력 확인
- 숏코딩 과정 확인
'백준' 카테고리의 다른 글
백준 2884 알람 시계 파이썬 (0) | 2022.02.13 |
---|---|
백준 14681 사분면 고르기 (0) | 2022.02.12 |
백준 9498 시험 성적 파이썬 (0) | 2022.02.10 |
백준 1330 두 수 비교하기 파이썬 (0) | 2022.02.09 |
백준 2588 곱셈 (0) | 2022.02.08 |