728x90
반응형
나의 풀이
# 오답인 답변
x = int(input())
if x%4==0 & x%100!=0 | x%400==0:
print(1)
else:
print(0)
계속 |를 사용해서 접근하다보니, 에러가 지속적으로 발생했었다.
- 즉, 둘 중 하나 이상이 1이면 1이 된다는 뜻.
- 여기서 or 대신 | 를 넣고 2000을 대입하면, 0이 나오는데, 이는 x%4와 x%100과 x%400이 모두 다른 식으로 인식되기 때문이다.
- x%400이 true라서 x%100 | x%400 ⇒ 1이 되어도, x%4는 0이 아니므로 & 연산자에 의해 false로 판별한다.
x = int(input())
if (x%4==0 and x%100!=0) or x%400==0:
print(1)
else:
print(0)
이렇게 수정하면 된다. 여기서 비트 연산자를 사용하지 않은 이유는, 2012와 같은 경우에서 계속 잘못된 답이 나오는데 이는 비트 연산자의 연산 방식에 있어서 true, false가 다르게 나오기 때문이다.
728x90
반응형
'학부 > 코딩테스트 준비' 카테고리의 다른 글
백준 (단계별 풀어보기 3단계) 2439 문제, 파이썬 (0) | 2023.09.21 |
---|---|
백준 (단계별 풀어보기 3단계) 8393문제, 파이썬 (0) | 2023.09.20 |
백준 (단계별 풀어보기 2단계) 2480 문제, 파이썬 (0) | 2023.09.19 |
백준 (단계별 풀어보기 2단계) 2525문제, 파이썬 (0) | 2023.09.17 |
코딩 테스트 준비 (0) | 2023.09.16 |