프로그래밍을 하다 보면 2개의 변수에 대해서 서로의 값을 교환해야 하는 경우가 있습니다.
swap 함수를 쓰면 편하지만, 직접 효과를 구현해야 할 때도 (혹시?) 있을 것 입니다.
가령 a = 40, b = 30일 때 a = 30, b = 40으로 만드는 것입니다.
저만 그런지 모르곘지만, 항상 보조 변수를 선언해서 이 방법을 해결했었습니다.
int n 같은 변수에 a 나 b 중 하나를 저장해 놓고, 순차적으로 바꾸는 것이죠.
int a {40};
int b {30};
int n {};
n = a;
a = b;
b = n;
cout << a << endl; // 30
cout << b << endl; // 40
이런 식으로요.
아마 익숙하실 것 같습니다.
그런데 쓸데 없는 변수를 만들지 않고 가능한 기발한 방법을 찾아서 기록해둡니다.
int n1{30};
int n2{40};
n1 = n1 + n2; // n1 = 30 + 40 = 70
n2 = n1 - n2; // n2 = 70 - 40 = 30
n1 = n1 - n2; // n1 = 70 - 30 = 40
cout << n1 << endl; // 40
cout << n2 << endl; // 30
이렇게 하면 의미없는 변수를 선언하지 않고 해결이 됐습니다.
사실 아주 간단한 아이디어인데 이런게 쉽게 생각나지 않네요..
이런게 바로바로 떠오른다면 참 좋을 것 같습니다.
'C++ > 기타' 카테고리의 다른 글
[C++] cin.ignore() (0) | 2023.12.28 |
---|---|
[C++] vscode 디버깅 세팅 기록 (0) | 2023.12.23 |
[C++] 랜덤 숫자 random number (0) | 2023.12.16 |
[C++] <iomanip> setprecision(n) (0) | 2023.12.10 |
[C++] Compund Assignment Operator (0) | 2023.12.07 |