HanSol's Oak Cask

백준 3009번: 네 번쨰 점, 파이썬 XOR연산 본문

알고리즘, 코딩테스트

백준 3009번: 네 번쨰 점, 파이썬 XOR연산

HanSol_Lim 2025. 2. 12. 10:39

count()를 썻는데, 더 잘 푸는 방법이 있는지 궁금해서 찾아보았다.


🔍 XOR 연산 (^) 개념 및 사용법

파이썬에서 XOR 연산자(^)비트 연산을 수행하는 논리 연산자입니다.


1. XOR 연산(^) 기본 개념

  • 같은 값끼리 XOR하면 0이 됨.
    5 ^ 5 = 0
    
  • 0과 XOR하면 원래 값이 그대로 남음.
    0 ^ 5 = 5
    
  • 두 값이 다르면 1이 됨.
    0 ^ 1 = 1
    1 ^ 0 = 1
    
  • XOR은 교환 법칙(a ^ b == b ^ a)과 결합 법칙((a ^ b) ^ c == a ^ (b ^ c))이 성립함.

2. 파이썬에서 ^ 연산자 사용

a = 5
b = 3
print(a ^ b)  # 5(101) XOR 3(011) = 6(110)

✔ 5(101) ^ 3(011) = 6(110)


3. XOR을 활용한 네 번째 점 찾기

XOR을 활용하면, 같은 값이 두 번 등장하면 자동으로 사라지고, 한 번만 등장한 값만 남는다.

import sys

x4 = 0
y4 = 0

for _ in range(3):
    x, y = map(int, sys.stdin.readline().split())
    x4 ^= x  # XOR 연산
    y4 ^= y  # XOR 연산

print(x4, y4)

XOR을 활용하면 불필요한 조건문 없이 한 번만 등장한 값을 자동으로 찾을 수 있음! 🚀


4. XOR의 원리 (예제)

입력

1 2
1 4
3 2

과정

X 좌표 연산 (XOR)

1 ^ 1 ^ 3  =  (1 ^ 1) ^ 3  =  0 ^ 3  =  3

Y 좌표 연산 (XOR)

2 ^ 4 ^ 2  =  (2 ^ 2) ^ 4  =  0 ^ 4  =  4

출력

3 4

📌 즉, (3, 4)가 네 번째 점이 됨! 🎯


🚀 결론

XOR(^)을 사용하면 한 번 등장한 값만 남게 됨 → 조건문 없이 네 번째 점을 쉽게 찾을 수 있음!
기본적으로 같은 값을 두 번 XOR하면 사라지므로 활용 가능!
코딩 테스트에서 XOR을 잘 활용하면 문제 풀이 속도를 단축할 수 있음! 🚀