포스트

두 변수를 swap하는 방법 몇가지

두 정수를 swap하는 여러가지 방법


  1. 추가 메모리 이용
  2. bitwise 연산 이용
  3. 산술 연산자 이용

1. 추가 메모리 이용


  • 가장 많이 쓰는 방법
  • tmp 변수를 두고 여기에 저장을 하여 swap
    1
    2
    3
    4
    5
    
    int a, b, tmp;
    a = 20; b = 10;
    tmp = a;
    a = b;
    b = tmp;
    

2. bitwise 연산 이용


  • XOR의 특성을 이용함
1
2
3
4
5
6
int a = 3; // 0011
int b = 7; // 0111

a ^= b; // 0100 
b ^= a; // 0011
a ^= b; // 0111

3. 산술 연산 이용


1
2
3
4
5
6
int a = 10;
int b = 20;

a = a + b; // 30 
b = a - b; // 10
a = a - b; // 20
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.