티스토리 뷰
키 포인트는 ‘두 수의 차이’이다.
0 < b < a 일 경우, 시각적으로 표현하면 다음과 같다.
a-b를 diff라고 생각하면 알고리즘은 다음과 같다.
ㄱ. a = diff
ㄴ. b = b + diff // 이 시점에서 b는 a의 원래값이 된다.
ㄷ. a = b - diff // a는 b의 원래값이 된다.
알고나면 참 쉬운 문제이다. 이를 Swift 코드로 표현하면 다음과 같다.
1 2 3 4 5 6 7 8 9 10 | func swap(var a: Int, var b: Int) -> (Int, Int){ a = a - b b = a + b a = b - a print("a: \(a)") print("b: \(b)") return (a,b) } | cs |
실행 결과는 다음과 같다. 양수는 물론 음수에도 적용되고, 파라미터의 자료형을 바꿔준다면 소수에도 잘 적용된다.
'Dev: 개발 > Algorithm' 카테고리의 다른 글
징검다리를 건너는 경우의 수 구하기 (1) | 2016.11.02 |
---|---|
문자열에 포함된 문자들이 전부 유일한지 검사하는 알고리즘을 구현하라. (0) | 2016.09.11 |
두 개의 Stack으로 하나의 Queue를 구현하라. (0) | 2016.08.24 |
코딩 인터뷰 스터디에 가입했다. (0) | 2016.08.23 |