반응형

Swap 이란 단어, 들어 보신분들도 계시고 아닌 분도 계신데,


네이버 영어사전에 뜻을 검색해보면




우리는 다른 뜻은 필요 없고,

<데이터>를 교환하다.만 보시면 됩니다 ㅎㅎ


그럼 데이터를 교환하는데 왜이렇게 스왑이란 단어로 명명하고,

힘들게 하냐?


예시를 들어보면



이렇게 두개의 변수가 있다고 합시다!


그리고 이 변수 들에게 각각 어떤 값이 들어갔습니다.


A라는 변수에는 "안녕?" 이라는 문자열이.

B라는 변수에는 "무꼬" 라는 문자열이 각각 저장 되었죠.


여기까진 쉽죠?


그냥


Dim A as String

Dim B as String

A = "안녕?"

B = "무꼬"


이렇게 해주시면 되지요.


여기 까진 문제가 없습니다.


그럼 이건 어떨까요?


A의 값과 B의 값을 서로 바꿔야 할 상황이 생겼습니다.


어떻게 할까요?





Dim A as String

Dim B as String

A = "안녕?"

B = "무꼬"


A = B

B = A


이렇게 하면 될까요?

그럼 현재 이 코딩을 모식도로 보여 드릴게요.



??????

왜이런 결과가 나올까요.


결과가 A와 B모두 "무꼬"라는 문자열이 저장 되어 버리지요.


컴퓨터는 코딩 내용을 위에서 아래로 읽어 내려 갑니다.



그럼 A 와 B의 값을 깔끔하게 바꿀 수 있는 방법은 뭐가 있을까요?


쉽게 바꿔 얘기하면

A라는 페트병과

B라는 페트병 두개가 있습니다.


A에는 우유가 들어있고

B에는 이온음료가 들어 있지요.


두개의 내용물을 바꾸는 방법이 뭐가 있을까요?

생각 한번 해보시고 스크롤을 내려보세요.




과연 당신의 IQ는 높을까요?








정답은 C라는 페트병을 하나 임시로 가져와서

A의 내용물을 C에다가 옮겨 담고,

B의 내용물을 A에 옮기고,

C의 내용물(원래는 A의 내용물)을 다시 B에다가 넣게 되면


결과 적으로


A와 B의 내용물은 정확히 바뀌게 되지요?


순서도로 보여드릴게요!

정확히 반대로 바뀌게 됩니다.



그렇다면

코딩으로 볼게요,


Dim A as String

Dim B as String

Dim C as String

A = "안녕?"

B = "무꼬"


C = A

A = B

B = C


이렇게 할 수 있겠죠?



이 방법이 바로 '스왑'이라는 방법입니다.


스왑에 관한 전반적인 설명이 끝났습니다!




반응형

+ Recent posts