์์ง ์ฝ๋ฉ ์ํ๊ณ ์๊ฐ๋ง ํด๋ณด๋์ค์ธ๋ฐ
์์ดํ ์ฌ๋กฏ 1๋ฒ์ด๋ 2๋ฒ์์ ์์ดํ ๊ตํํ๋ค๊ณ ํ ๋
1๋ฒ์นธ์ ์์ดํ ๋ฐ์ดํฐ๋ฅผ a๋ก ๋ณต์ ํ๊ณ
2๋ฒ์นธ์ ์์ดํ ๋ฐ์ดํฐ๋ฅผ b๋ก ๋ณต์ ํ๊ณ
1๋ฒ์นธ์ ์์ดํ ๋ฐ์ดํฐ๋ฅผ b๋ฅผ ๋ค์ ๋ณต์ ํด์ ๋์ ํ๊ณ
2๋ฒ์นธ์ ์์ดํ ๋ฐ์ดํฐ๋ฅผ a๋ฅผ ๋ค์ ๋ณต์ ํด์ ๋์ ํ๋
์ด๋ฐ ๋ฐฉ์์ผ๋ก ํด์ผํ๋??
๊ทธ๋ฅ ๋์ ํ๋ฉด ์ฐธ์กฐ๊ฑธ๋ฆฌ์ง ์๋
๊ตณ์ด ๋ฐ์ดํฐ ์ฎ๊ฒจ๋ค๋์ง ๋ง๊ณ ๊ทธ๋ฅ ์์ดํ ์์ฒด์ ์ฌ๋กฏ๋ฒํธ๋ฅผ ๋ถ์ฌํด์ ์ฌ๋กฏ๋ฒํธ๋ผ๋ฆฌ ์ฎ๊ธฐ๋๊ฒ ๋ ๋์ผ๋ ค๋ ๊ทธ๋ฅ
์์ดํ ๋ง๋ค๋์ ์ฌ๋กฏ ๋ฒํธ๋ฅผ ๋ฃ์ด๋๊ณ ์ด๊ฑฐ๊ธฐ๋ฐ์ผ๋ก ์ธ๋ฒคํ ๋ฆฌ์ ์ถ๋ ฅํ๊ณ ์์ ๋๋ฉด ์ธ๋ฒคํ ๋ฆฌ ์๋ก๊ณ ์นจ
๋๋ ์ธ๋ฒคํ ๋ฆฌ์ฉ ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ๊ฐ ๋ฐ๋ก ์๋๊ฒ ๋ซ๋ค๊ณ ๋ด.. ์์ดํ ์ด ์ธ๋ฒคํ ๋ฆฌ ์ฌ๋กฏ ๋ฒํธ๋ฅผ ๊ฐ์ง๋๊ฑฐ ๊ด๋ฆฌ ์ฝ์ง ์์๋ฏ.. ๊ทธ๋ฆฌ๊ณ ์์ดํ ๋ฐ์ดํฐ๋ ์ ์ด์ ์ค๋ธ์ ํธ๋ฉด ์ฐธ์กฐ์ผํ ๋ฐ ์ ๋นํ swapํด
์์ดํ ์ ๋ด์ ๋ฆฌ์คํธ๋ฅผ ์ธ๋ฒคํ ๋ฆฌ๊ฐ ์ฐธ์กฐํ๋ ๋ฐฉ์์ผ๋ก ํ๋ฉด ๋๋๊ฑด๊ฐ?
์ธ๋ฒคํ ๋ฆฌ๊ฐ ์์ดํ ์ ๋ด์ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ์ง ์์?
๊ทผ๋ฐ ๊ทธ๋ฌ๋ฉด ๊ตํ์ด ๋นก์
์? ๋๋ ์ ์ดํด๊ฐ ์๋๋๊ฑธ? ์ด๋ป๊ฒ ๊ตฌ์ฑํ๊ธธ๋?
์๋ณธ์ ์ธ๋ฒคํ ๋ฆฌ ๋ฆฌ์คํธ๊ฐ ๊ฐ๊ณ ์์ผ๋ฉด 1๋ฒ : A, 2๋ฒ B๋ผ๊ณ ํ ๋ ์์น ๋ฐ๊พธ๊ธฐ์ฉ C = Aํ๋ฉด C๋ A์ ์ฐธ์กฐ๋ฅผ ๊ฐ๊ณ , 1๋ฒ = B๋ฅผ ํ๋ฉด 1๋ฒ์ B์ ์ฐธ์กฐ๋ฅผ ๊ฐ๊ณ 2๋ฒ = C๋ฅผ ํ๋ฉด 2๋ฒ์ A์ ์ฐธ์กฐ๋ฅผ ๊ฐ๊ฒ ๋๋๊ฑฐ ์๋?
์ธ๋ฒคํ ๋ฆฌ๊ฐ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๋ฉด 1๋ฒ : A์ ์ฐธ์กฐ, 2๋ฒ : B์ ์ฐธ์กฐ๋ฉด C = A์ ์ฐธ์กฐ, 1๋ฒ = B์ ์ฐธ์กฐ, 2๋ฒ = C = A์ ์ฐธ์กฐ๊ฐ ๋์ ์ฐธ์กฐ ๊ฐ์ ๊ฐ๊ณ ์์ด์ผ ๊ตํ์ด ์ฌ์์ง์ง ์๋?
๊ทธ๋์ ์๋ณธ๋ผ๋ฆฌ ๊ตํํ๋ ค๋ฉด C = A์ ๋ณต์ , D = B์ ๋ณต์ , A = D์ ๋ณต์ , B = C์ ๋ณต์ ์ด๋ฐ์์ผ๋ก ๊ตํํด์ผ๋๋๊ฑฐ ์๋๋๊ณ ๊ธ์๋ค ์ ์ด๋จ์
๊ทธ๋ ์ง. ๋๋ ์ฐธ์กฐ๋ก ์๊ธฐํ๊ฑฐ์์
ใ ใ ์ดํดํจ
๋ด๊ฐ ์ฐธ์กฐ๋ฅผ ์๋ชป ์๊ณ ์๋๊ฑฐ๊ตฌ๋ ๊ทธ๋ฅ
๊ทธ๋ฅ ์ฐธ์กฐ ํ์ ์ด๋ผ๋๊ฒ ์ง์ง ๋ง๊ทธ๋๋ก ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๊ณ ์๋๊ฑฐ์ง ์๋ณธ์ด๋ผ๋๊ฑด ์๊ตฌ๋.. ์ ์ด๋ถํฐ ์ฐธ์กฐ ํ์ ๋ฆฌ์คํธ๋ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๊ณ ์๋๊ฑฐ์๋ค..
๋ํ ํ๋ค๋ณด๋๊น ๋ง์ด ์ด์ํด์ ธ์ ๋ณด๋๊น ์ฐธ์กฐ๋ฅผ ์๋ชป ์ดํดํ๊ณ ์์๋ค ๋ณต์ ๋ ๋ญ ๋ณต์ ์ฌ ์๋ฐ
์๋ณธ์ C# ๋ฐํ์์ด ๊ด๋ฆฌํจ
์ธ๋ฒคํ ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ๊ตฌ์ฑ ๋๋์ง ๋ชฐ๋ผ์ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง ์ผ ์ ์๋๋ฐ, ๋๋ ์ธ๋ฒคํ ๋ฆฌ ๊ตฌํํ ๋ ๊ทธ๋ฅ list<itemclass> ํ๋๋ง ์ ์ธํด๋๊ณ ์ฐ๋ ํธ์ด๋ผ ์์น ๋ฐ๊ฟ์ผ์ด ์๊ธฐ๋ฉด ๋ฆฌ์คํธ ์ธ๋ฑ์ค ๋ผ๋ฆฌ ์๋ก ๊ตํํ๊ณ ์ธ๋ฒคํ ๋ฆฌ ์๋ก๊ณ ์นจ ๋ฉ์๋ ๋ถ๋ฅผ๋ฏ
๋ฆฌ์คํธ๋ก ๊ตฌํํด์ ์์น๋ฅผ ๋ฐ๊ฟ์ค๋ค. ์ง์ - dc App