Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- xapi
- git 오류
- 테스트
- 일기
- 데이터 거버넌스
- Runwith
- 연계방식
- playgroundAI
- 코딩테스트
- 백준
- git
- 영어일기
- JUnit
- 정적분석도구
- AI그림
- 스택
- diary
- application.yml
- 소스코드품질
- 데이터 직렬화
- 부하 테스트
- 알고리즘
- notempty
- 파이썬
- extendwith
- serializtion
- Live Template
- JUnit5
- useRef
- LRS
Archives
- Today
- Total
HanSol's Oak Cask
백준 3009번: 네 번쨰 점, 파이썬 XOR연산 본문
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을 잘 활용하면 문제 풀이 속도를 단축할 수 있음! 🚀
'알고리즘, 코딩테스트' 카테고리의 다른 글
| 백준 10828번: 스택 (Python) (0) | 2025.02.18 |
|---|---|
| 백준 2839번: 설탕 배달 문제 해결 과정 (Python) (0) | 2025.02.14 |
| 특정 요소가 다른 모든 요소의 합보다 큰 지 판별하는 방법 (0) | 2025.02.12 |
| 코딩 테스트에서 import 없이 해결할 수 있는 함수 대체 방법 정리 (0) | 2025.02.11 |
| 코딩테스트 시간 초과 방지 방법 (0) | 2025.02.11 |