문제

로직 정리
- year 입력
- 조건 2가지(4의배수&100의배수가아님, 400의 배수)에 해당할 경우 "1"출력
- 아니면 "0"출력
알아야 할 것
- 배수일 경우 해당 숫자로 나눴을 때 나머지가 0이다. (year % 4 == 0)
작성 코드
year = int(input())
print("1" if ((year%4 == 0 and year%100 != 0) or (year % 400 == 0)) else "0" )
- 메모리 : 30840KB, 시간 68ms, 코드길이 : 101B
복기
다른사람 코드 1(숏코딩)
n=int(input())
print(+(n&-n>3|8>>n%50))
- 메모리 : 230840KB, 시간 : 72ms, 코드길이 : 39B
- ???? 이게 뭐죠..?? 와우....
>>
은 시프트 연산자라고 하네요. 정해진 비트수만큼 옆으로 이동시켜주는 역할이라고하는데, 2진수로 바꿔서 앞 or 뒤로 0을 넣어주는 연산자입니다. 이걸 여기ㅇㅔ..? (설명 : https://deepflowest.tistory.com/49)
역시 알다가도 모를 파이썬의 세계.
- 그리고 여기서 0, 1이 없는데 어떻게 출력이 되는지 모르겠다..