[XOR]단 1개의 엘리먼트를 찾기

이윤성·2022년 3월 23일
0

XOR 연산

XOR 연산은 다음과 같은 특징을 가지고 있다.

  1. XOR 연산은 서로 다르면 1, 같으면 0의 결과를 보인다.
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
  1. 따라서 자기 자신과 XOR 연산하면 0이 나온다
# 0b는 편의상 모두 생략
0111 ^ 0111 = 0000
  1. 0과 XOR 하면 자기 자신이 나온다
0101 ^ 0000 = 0101

이와 같은 성질 때문에, 코딩테스트에 다음과 같이 사용 가능하다.

단 하나의 엘리먼트만 개수가 1개이고 나머지 엘리먼트는 2개인 배열이 존재한다.
ex) [2,3,2,5,5]

0을 초기값으로 둔 변수와 배열의 모든 엘리먼트를 순차적으로 XOR 연산을 진행하면 개수가 1개인 엘리먼트만 남게된다.

0 ^ 2 = 2 // 0000 ^ 0010 = 0010
2 ^ 3 = 1 // 0010 ^ 0011 = 0001
1 ^ 2 = 3 // 0001 ^ 0010 = 0011
3 ^ 5 = 6 // 0011 ^ 0101 = 0110
6 ^ 5 = 3 // 0110 ^ 0101 = 0011

0개의 댓글

관련 채용 정보