입력:
1 또는 0의 값만 가지는 2개의 정수가 공백을 두고 입력된다.
출력:
참/거짓이 서로 다를 때에만 1을 출력하고, 그 외의 경우에는 0을 출력한다.
내 코드:
x, y = input().split()
a = int(x)
b = int(y)
def xor(x, y):
if x!=y:
return 1
else:
return 0
print(xor(a, b))
또 다른 풀이:
x,y=map(int, input().split())
print(int(bool(x)^bool(y)))
Comment: 처음에는 xor 논리 연산자가 존재하지 않는 줄 알고 그냥 함수를 만들어서 풀었는데, 비트 연산자를 사용해서 푸는 것도 가능하더군요. '^'는 xor 연산을 할 때 사용하는 비트 연산자입니다. 비트 연산자에 대해서는 47번 문제에서 일부를 다룬 적이 있습니다. 비트 시프트 연산자 '<<', '>>' 역시 비트 연산자의 한 종류입니다.
비트 논리 연산자는 2진수 연산에 쓰이는데, 원리는 그냥 논리 연산자와 같습니다. 다만 비트 연산자는 연산의 규칙으로 작용한다는 점이 다른 점이죠. 아래는 각 비트 연산자의 계산 규칙을 나타낸 표입니다.
비트 연산자는 위의 표를 기준으로 두 2진수의 자릿수들을 연산해 줍니다. 어떤 연산자를 선택하느냐에 따라 결과가 달라질 수 있겠죠. 이러한 비트 연산은 통상적인 연산에 비해 속도가 굉장히 빠르다는 장점을 가지고 있습니다.
※ 참고 사이트
www.joinc.co.kr/w/Site/C/Documents/Bit_Operation
dojang.io/mod/page/view.php?id=2460
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp 기초 100제] 1058 : [기초-논리연산] 둘 다 거짓일 경우만 참 출력하기(풀이 성공) (0) | 2021.02.22 |
---|---|
[CodeUp 기초 100제]1057 : [기초-논리연산] 참/거짓이 서로 같을 때에만 참 출력하기(풀이 성공) (0) | 2021.02.22 |
[CodeUp 기초 100제] 1055 : [기초-논리연산] 하나라도 참이면 참 출력하기(풀이 성공) (0) | 2021.02.18 |
[CodeUp 기초 100제] 1054 : [기초-논리연산] 둘 다 참일 경우만 참 출력하기(풀이 성공) (0) | 2021.02.18 |
[CodeUp 기초 100제] 1053 : [기초-논리연산] 참 거짓 바꾸기(풀이 성공) (0) | 2021.02.16 |