바위타는 두루미

16.1 숫자 교환 본문

Study/Algorithm

16.1 숫자 교환

DoRoMii 2019. 8. 14. 10:34
728x90

문제 

임시 변수를 사용하지 않고 숫자를 교환하는 함수를 작성하라.

 

해법

이 문제는 두 수중 하나의 수에 그 둘의 '차이'를 가지고 있도록 하면 해결할 수 있는 문제이다.

숫자 a, b가 있다면 a = a-b 를 통해 a가 차이를 가지고 있도록 하고, b = a  +b  를 통해 a가 된다.

그리고 다시 a = b -a를 통해 a 는 b가 된다.

a = 9 b = 4라고 할때

a = a- b ( a = 9 - 4 =5)

b = a+b (b = 5+4 =9) 

a = b-a ( a = 9-5 =4)

 

비트로도 같은 연산이 가능하다. 이러면 정수 이외의 자료형에서도 동작한다는 이점이 있다.

a  = a^b

b = a^b

a = a^b

 

'Study > Algorithm' 카테고리의 다른 글

16.11 다이빙 보드  (0) 2019.08.14
16.10 살아있는 사람  (0) 2019.08.14
[leetcode]300. Longest Increasing Subsequence  (0) 2019.08.11
[leetcode]322. Coin Change  (0) 2019.08.11
[leetcode]62. Unique Paths  (0) 2019.08.11
Comments