Engineering(SoC Design)/C, C++, Rust 18

swap without tmp

오늘 아는 동생이... 중소기업에 신입 C++ 프로그래머 면접을 봤다고 합니다. 그중에 간단한 코딩테스트도 있었다고 하네요. 그런데 하필... 거기에 임시변수를 사용하지 말고 swap 을 구현하라는 유명한 고전문제가 나왔다고 하네요. 제가 이 문제 내는 사람이 너무 생각없이 내는 경우를 몇번 봐서... 이런 문제 내지 말라는 의미로 공유 해 봅니다. 일반적으로 저런 코드를 짜지 말라고 하는 이유인 성능이 오히려 나쁘다거나, 보기 어렵다는 그런 문제가 아닙니다. 보통 C++에서 swap 을 임시변수를 사용하지 않고 구현하는 경우는 다음3가지 케이스를 답으로 생각하고 문제를 냅니다. 1. xor을 사용 2. + - 사용 3. * / 사용 하지만 이것들은 각각 사용이 불가능한 제한 조건이 있습니다. 1. 두 ..