XOR 연산은 다음과 같은 특징을 가지고 있다.
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
# 0b는 편의상 모두 생략
0111 ^ 0111 = 0000
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