PROBLEM.
https://codeup.kr/problem.php?id=1056
IDEA.
XOR 연산자를 사용하면 두 값이 다를 때에만 참을 출력할 수 있다.
TRIAL AND ERROR.
a, b = map(int,input().split())
print(1 if a != b else 0)
XOR 연산자의 존재를 모르고 if else문을 사용했다..ㅎㅎ
SOURCE.
a, b = map(int,input().split())
print(a^b)
LESSON.
비트연산자의 작동방식에 대해서 배웠다. 우선 비트 연산자는 수 자료형만 입력값으로 사용할 수 있으며, ⑴ 비트 단위로 논리연산을 수행하거나 (2) 비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때 사용한다.
(1) 비트 단위로 논리연산 수행 ( &, |, ^, ~)
위 그림처럼 수 자료형을 비트 단위로 만들어 각 자리를 비교해서 새로운 값을 만들어낸다.
a = 15
b = 8
print(a&b)
# 출력 : 8
(2) 비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동 (<<, >>)
<< □ (Left Shift 연산자) : 모든 비트를 □ 만큼 왼쪽으로 이동시킨다. 즉, 2^□ 만큼 곱해진다.
a = 8
print(a << 5)
# 출력 : 256
>> □ (Right Shift 연산자) : 모든 비트를 □ 만큼 오른쪽으로 이동시킨다. 즉, 2^□ 만큼 나눠진다.
a = 8
print(a >> 1)
# 출력 : 4
Reference.
1) 웹 사이트 - 코딩의 시작, TCP SCHOOL.COM
http://www.tcpschool.com/c/c_operator_bitwise
End.
'Algorithm' 카테고리의 다른 글
31st. CodeUp #1058 : [기초-논리연산] 둘 다 거짓일 경우만 참 출력하기 (0) | 2020.12.15 |
---|---|
30th. CodeUp #1057 : [기초-논리연산] 참/거짓이 서로 같을 때에만 참 출력하기 (0) | 2020.12.14 |
이것이 코딩테스트다 chapter12 구현 연습문제 (0) | 2020.12.07 |
이것이 코딩테스트다 Chapter 4 구현 (0) | 2020.12.05 |
CodeUp 기초100제 [기초-데이터형] 문제풀이 (#1028~#1030) (0) | 2020.11.25 |