일상/파이썬
파이썬 swap temp XOR
정책온니
2024. 1. 1. 02:02
파이썬에서 swap 하는 방법은 여러가지가 있는데
- temp 활용
- 파이썬 문법 활용
- XOR 활용
문제 : a=1 b=2가 있다. 이 둘을 교환하기
출력 : a=2, b=1 이렇게 나와야 한다.
temp
# temp를 활용한 방식
a = 1
b = 2
temp=b
b= a
a = temp
print(a,b)
파이썬 문법 활용
제일 편리한 방범인듯
# temp를 활용한 방식
a = 1
b = 2
a,b = b,a
print(a,b)
XOR 베타연산자 활용방법
# temp를 활용한 방식
a = 1
b = 2
a = a ^ b # a=3
b = a ^ b # b=1
a = a ^ b # a=2
print(a,b)
XOR 연산은 두 비트가 서로 다를 때만 1을 반환하는 비트 단위의 연산입니다. a = a ^ b 연산을 이해하기 위해,
먼저 a와 b의 이진수 표현을 살펴봐야 합니다.
a = 1의 이진수 표현은 01입니다 (일반적으로 비트를 맞추기 위해 앞에 0을 추가합니다).
b = 2의 이진수 표현은 10입니다.
이제 a ^ b 연산을 수행합니다.
a = 01
b = 10
11
그리고 11은 3 이다.
이런 이유로 swap을 할 수 있다.