직사각형 나머지 한 변 찾기
def solution(v):
x = v[0][0] ^ v[0][1] ^ v[0][2]
y = v[1][0] ^ v[1][1] ^ v[1][2]
answer = [x,y]
return answer
비트연산자
a = 60, b = 13 이라 가정했을 때,
a = 0011 1100
b = 0000 1101
& | AND 연산. 모두 참일때만 만족 | (a & b) = 12 → 0000 1100 |
| | OR 연산. 하나만 참이여도 만족 | (a | b) = 61 → 0011 1101 |
^ | XOR 연산. 하나만 참일 때 만족 | (a ^ b) = 49 → 0011 0001 |
~ | 보수 연산. | (~a) = -61 → 1100 0011 |
<< | 왼쪽 시프트 연산자. 변수의 값을 왼쪽으로 지정된 비트 수 만큼 이동 | a << 2 = 240 → 1111 0000 |
>> | 오른쪽 시프트 연산자. 변수의 값을 오른쪽으로 지정된 비트 수 만큼 이동 | a >> 2 = 15 → 0000 1111 |
(a ^ b ^ b) = 60 → 0011 1100
0011 1100
0000 1101
__________
0011 0001 (49)
0000 1101
__________
0011 1100 (60)
0011 1100
0000 1101
0000 1101
_________
0011 1100
=> 짝수로 같은 수는 xor하면 0(0000 0000)이 출력되고, 0과 xor 연산한 수는 자기자신이 출력됨
'언어' 카테고리의 다른 글
target으로 계산되는 경우의 수 구하기: DFS (0) | 2024.02.16 |
---|---|
BFS: 게임 맵 최단거리 구하기 (1) | 2024.02.16 |
past 30 days -> interval 29 day (0) | 2024.02.01 |
컬럼마다 따로 놀 수 있다 (1) | 2024.01.30 |
집계함수 안에 IF문 넣기 (0) | 2024.01.30 |