백준

백준 2753 윤년 파이썬

하카데미 2022. 2. 11. 08:30

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