풀이 목록으로 돌아가기

BOJ 12833 - XORXORXOR

2024-05-21
BOJ
브론즈 I
python
원본 문제 보기
수학
비트마스킹

문제

BOJ 12833 - XORXORXOR

A에 B를 C번 XOR 연산한 결과를 구하라.

입력

A, B, C가 공백으로 구분되어 주어진다.

출력

A에 B를 C번 XOR한 결과를 출력한다.

예제

입력출력
4 3 24

풀이

XOR은 자기 자신을 두 번 적용하면 원래 값으로 돌아오는 성질을 이용한다.

  1. C를 2로 나눈 나머지를 구한다 (C % 2)
  2. 나머지가 1이면 A XOR B를 적용하고, 0이면 A 그대로 출력한다

핵심 아이디어: A ^ B ^ B = A이므로, 짝수 번 XOR하면 원래 값, 홀수 번이면 한 번만 적용한 값이다.

코드

a, b, c = map(int, input().split())
for i in range(c % 2):
    a ^= b
print(a)

복잡도

  • 시간: O(1)
  • 공간: O(1)