본문 바로가기
알고리즘/문제

[codeground] Practice. 1. 숫자 골라내기

by 코드 이야기 2020. 8. 21.
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

댓글