728x90
처음엔 각 숫자를 세고 막 어찌어찌 하려고 하다가 한참을 고민했다.
그러나 XOR의 규칙을 보면 같은 숫자를 짝수번 연산해주면 원상복귀된다....
ex.
0000 ^ 0010 = 0010 (0^2=2)
0010 ^ 0010 = 0000 (2^2=0)
그래서 그냥 입력받고, XOR해주고 이 두개를 n만큼 반복하면 끝인 간단한 문제였다.
#include <iostream>
using namespace std;
int Answer;
int main()
{
int T, test_case;
int n, input, i;
cin >> T;
for(test_case = 0; test_case < T; test_case++)
{
Answer = 0;
cin>>n;
for(i=0; i<n; i++) {
cin>>input;
Answer^=input;
}
cout << "Case #" << test_case+1 << endl;
cout << Answer << endl;
}
return 0;
}
728x90
'알고리즘 > 문제' 카테고리의 다른 글
[NYPC] [2019 예선 연습] 1. 비밀번호 검사 (0) | 2020.08.25 |
---|---|
[codeground] Practice. 2. 프로그래밍 경진대회 (0) | 2020.08.22 |
[백준] 16180. New House <C++> (0) | 2020.08.11 |
[백준] 1920. 수 찾기 <C++> (0) | 2020.07.28 |
[백준] 6588. 골드바흐의 추측 <C++> (0) | 2020.07.21 |
댓글