'스와핑'에 해당되는 글 1건
- 2016.08.16 루비에서 변수 값 스와핑하기
루비에서 두 변수의 값을 스와핑하는 방법입니다. 예를 들어, a에 2가 대입되어 있고 b에 3이 대입되어 있다고 했을 때 둘을 바꿔치기해서 a=3, b=2로 만드는 방법을 말합니다. 일단 a와 b를 스와핑하는 의사코드를 보겠습니다. temp ← a a ← b b ← temp a ← a Xor b b ← a Xor b a ← a Xor b a, b ← b, a 흔히 사용되는 방법이 첫 번째 방법과 같은 임시변수 선언법이고 두 번째 방법과 같은 XOR 연산도 가끔 쓰이는데, 루비에서는 세 번째 방법대로 간편하게 스와핑을 구현할 수 있습니다. 다음 코드를 봅시다. a, b = 2, 3 # a에 2를, b에 3을 대입 puts sprintf("%s", [a, b]) # 출력 a, b = b, a # 스와핑 pu..