n개의 배열을 정해놓고 벡터를 돌면서 각 인덱스의 개수를 더해주었다. 이후 n만큼 돌면서 1개만 있으면 return 했다.
XOR 비트연산을 이용한다.
같은 수가 2번씩 나온다고 명시되어 있으므로,
같은수 ^ 같은수 = 0
이 나오는 XOR을 이용해서
1개만 나오는 수를 구한다.
벡터를 돌면서 각 수를 XOR 연산해주면 결국 1개만 나오는 수만 남게 된다.
int arr[105];
int lonelyinteger(vector<int> a) {
for(int i : a) arr[i]++;
for(int i=0; i<=100; i++)
{
if (arr[i] == 1) return i;
}
return 0;
}
int lonelyinteger(vector<int> a) {
int answer = 0;
for(int i : a)
{
answer = answer ^ i;
}
return answer;
}
비트연산을 이용하니 훨씬 간편해졌다..!!!