๋ณดํต ๊ฐ๋ฐ์์ ์๋ฆฌ์ด๋์ ์ธ๊ฐ์ ์์๊ฐ ์์ด์ผ์ง๋ง ๊ฐ๋ฅํ๋ค.
๋น์์ = ๊ฐ๋ฐ์1 ๊ฐ๋ฐ์1 = ๊ฐ๋ฐ์2 ๊ฐ๋ฐ์1 = ๋น์์ ๊ทธ๋ฐ๋ฐ XOR๋ฅผ ์ด์ฉํ๋ฉด ๋๊ฐ์ ์์ ๋ง์ผ๋ก๋ ์ด๋์ด ๊ฐ๋ฅํ๋ค.
๊ฐ๋ฐ์1 ^= ๊ฐ๋ฐ์2 ๊ฐ๋ฐ์2 ^= ๊ฐ๋ฐ์1 ๊ฐ๋ฐ์1 ^= ๊ฐ๋ฐ์2 GPT์ ๋ต๋ณ์ด๋ค. ๋๋ ์ด๋ฐ ๋ฐฉ๋ฒ์ด ์์๊ฑฐ๋ผ ์๊ฐ๋ ๋ชปํ์๋ค.
๊ทธ๋ฌ๋์ค ํ๋์ ์ปดํ์ผ๋ฌ์์ XOR๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์์ง๋ง ๋ณ๋ ฌ์ฒ๋ฆฌ์์์ ๋ฌธ์ ๋ก ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ๋ค์๋ค.
ํญ์ ์์ธํ ์ค๋ช
๊ณผ ํจ๊ป ๋์์ฃผ์๋ pr0gr4m ๋.
๋๋ ค์ง๋๊ฒ ๋ง๋ค๊ณ ํ์
์ ๊ถ๊ธํด์ ๋๋ ค๋ดค๋ค.
import timeit # temp ์ฌ์ฉ def swap_temp(): a = 5 b = 10 temp = a a = b b = temp return a, b # XOR ์ฌ์ฉ def swap_xor(): a = 5 b = 10 a ^= b b ^= a a ^= b return a, b # ์ฑ๋ฅ ํ
์คํธ temp_time = timeit.timeit("swap_temp()", setup="from __main__ import swap_temp", number=1000000) xor_time = timeit.timeit("swap_xor()", setup="from __main__ import swap_xor", number=1000000) print(f"Using temp: {temp_time} seconds") print(f"Using XOR: {xor_time} seconds") ์ฝ๋๋ฅผ ์ฌ๋ฌ๋ฒ ์คํํด ๋ดค๊ณ ๊ฒฐ๋ก ์ ์ป์๋ค.
...