[Algorithm] 비트 연산자

link717·2021년 1월 24일
0

Algorithm

목록 보기
3/6
post-thumbnail

🌼 비트 연산자

비트 연산자는 피연산자를 32개의 비트(0과 1) 집합으로 취급합니다. 연산은 2진수 표현을 사용해 수행하지만 결과는 표준 JavaScript 숫자 값으로 반환합니다.

// Bit Operation 

 0 1 1 0     0 1 1 0       0 0 1 1  위에서 아래를 곱해 줌
+0 0 1 0    -0 0 1 1      *0 1 0 1
---------   ---------     ---------
 1 0 0 0     0 0 1 1       0 1 0 1
                        +0 1 0 1 0
                        -----------
                           1 1 1 1 

😥 Question?

직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 구하시오.

작성한 코드)
const v = [[1, 4], [3, 4], [3, 10]];
function solution(v) {
    let answer = [0, 0];
    
    for (let position of v) {
        answer[0] ^= position[0];
        answer[1] ^= position[1];
    }
    
    return answer;
}

😏 Idea!

직사각형을 만들기 위해서는 기존에 주어진 좌푯값 중 2개 이상 중복되지 않은 숫자를 찾으면 된다. 비트 연산자 중 XOR을 사용할 경우, 같은 숫자끼리 XOR을 했을 때 결과는 0이 되고 0에 나머지 숫자 하나를 XOR 연산하면 결과는 나머지 숫자이므로 비트 연산을 이용하면 쉽게 결과를 알 수 있다. (예시: A XOR B XOR A = B)

출처: YOUTUBE-엔지니어대한민국, MDN-비트 연산자

profile
Turtle Never stop

0개의 댓글