PS/BOJ
백준 12833번: XORXORXOR (C++)
도비(Doby)
2022. 3. 19. 19:18
https://www.acmicpc.net/problem/12833
12833번: XORXORXOR
세 수 A, B, C를 입력 받은 다음, ( ( ( ( A XOR B ) XOR B ) XOR B ) … ) XOR B 형태로 연산을 C회 했을 때의 결과값을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
Solved By: Bitmasking
XOR 연산을 두 번하면 다시 제자리로 돌아온다는 패턴을 파악하고, c의 횟수가 홀수인지 짝수인지에 따라 조건을 분기하여 시간 초과를 면할 수 있습니다.
#include <iostream>
using namespace std;
int main(){
int a, b, c;
cin >> a >> b >> c;
if(c % 2 == 0) cout << a;
else{
a ^= b;
cout << a;
}
return 0;
}