일상/파이썬

파이썬 swap temp XOR

정책온니 2024. 1. 1. 02:02

파이썬에서 swap 하는 방법은 여러가지가 있는데 

  1.  temp 활용
  2. 파이썬 문법 활용
  3. 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

그리고 113 이다.

이런 이유로 swap을 할 수 있다.