본문 바로가기
알고리즘/프로그래머스

[KaKao 기출] 직사각형 좌표 값 구하기

by 꾸준하곰 2022. 3. 11.

#kakao #코딩테스트

비트 연산자(XOR)을 사용하면 간결하게 작성되는 문제이다.

 

1. Solution

#include <iostream>
#include <vector>
using namespace std;

int x, y;

vector<int> solution(vector<vector<int> > v) {
    vector<int> ans;

    x = v[0][0]^v[1][0]^v[2][0];
    y = v[0][1]^v[1][1]^v[2][1];

    ans.push_back(x);
    ans.push_back(y);

    return ans;
}

 

2. 비트 연산자

XOR 연산 (^): 연산을 수행하는 두 값이 같으면 같은 값을, 다르면 다른 값을 반환한다.

A B A^B
1 1 0
1 0 1
0 1 1
0 0 0

AND 연산 (&): 연산을 수행하는 두 값 모두 True 이여야만 True로 평가된다.

OR 연산 (|): 연산을 수행하는 두 값 중 하나 이상이 True 이여야만 True로 평가된다.

NOT 연산 (~): 연산을 수행하는 값의 bit를 0은 1로, 1은 0으로 바꾼다.

Left Shift 연산 (<<): 연산을 수행하는 값의 bit를 연산자 오른쪽에 있는 수 만큼 left로 이동시킨다.

Right Shift 연산 (>>): 연산을 수행하는 값의 bit를 연산자 오른쪽에 있는 수 만큼 right로 이동시킨다.

댓글