본문 바로가기
Algorithm/CodeUp

[CodeUp 기초 100제] 1056 : [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기(풀이 성공)

by 전봇대파괴자 2021. 2. 18.

입력:

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

 

Bit 연산의 필요성에 대해서

bit에 대해서 : 다분히 원칙적 설명

www.joinc.co.kr

dojang.io/mod/page/view.php?id=2460

 

파이썬 코딩 도장: 47.1 비트 연산자 사용하기

Unit 47. 부록 이제부터 부록입니다. 부록은 참고삼아 알아둘 내용, 자주 사용하지 않는 기능, 내용이 다소 어려운 부분, 파이썬을 어느 정도 알고난 뒤에 봐야할 내용 등을 담았습니다. 여기에 나

dojang.io