ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 변수 스왑
    언어 2021. 1. 13. 15:27

    두 변수를 바꾸는 가장 널리 알려진 방법은 임시 변수를 놓고 이를 활용하는 방법이다.

     

    temp = a

    a = b

    b= temp

     

    이 방식은 거의 모든 언어에서 활용할 수 있는 기본적인 방식이지만 파이썬은 임시 변수 없이 변수를 스왑할 수 있다.

    [Python]

    a : int = 3

    b : int = 5

    a, b = b, a 

     

    다중 할당이라고 불리는 이방식은 파이썬에서 지원하는 매우 강력한 기능이다.

    그렇다면 가독성과 더불어 코드의 양까지 줄일 수 있지만 속도 면에서는 어떨까? 맥북에서 실험결과 2개의 방식은 속도차이가 거의 없다는 것을 알 수 있었다. 

     

    그렇다면 다른 언어들은 어떨까?

     

    [C++]

     

    int a = 3;

    int b = 5;

     

    std::swap(a,b);

     

    리턴값 없이 a와 b의 값을 바꿔주는  swap 함수가 있다. 

     

    [Java]

     

    int temp = 0;

    int a = 1;

    int b = 2;

    temp = a

    a = b

    b = temp

     

    Java는 이런 함수가 없어서 임시 변수를 써줘야 한다.

     

    임시변수 없이 공간 복잡도를 필요로 하지 않는 풀이(단, 변수가 숫자형일때 한정):

    ex) x = 13, y =5

    x += y # x = 18, y = 5

    y = x-y # y = 13

    x -= y # x = 5

    '언어' 카테고리의 다른 글

    ADT(추상자료형)  (0) 2021.01.15

    댓글