티스토리 뷰


키 포인트는 ‘두 수의 차이’이다.

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: Intvar b: Int-> (IntInt){
    a = a - b
    b = a + b
    a = b - a
    
    print("a: \(a)")
    print("b: \(b)")
    
    return (a,b)
}
cs

실행 결과는 다음과 같다. 양수는 물론 음수에도 적용되고, 파라미터의 자료형을 바꿔준다면 소수에도 잘 적용된다.


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함