๋์ค์ ์ฐ๋ค๊ฐ ๋ค๋ ๋ผ๊ฐ๋ค ใ
์ผ๋จ ๋ฐฐ์ด ์ ์ฒด์ํ๋ก ํด๋ณด๊ณ ํผํฌ๋จผ์ค์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๋ค์ ๋ฐฉ๋ฒ์ ์๋ํด๋ณด์
----------------------
์ฌ๋ฃ์ ์ข ๋ฅ๊ฐ ์ด 10๊ฐ ์๋ค๊ณ ํ์(A, B, C, D, E, F, G, H, I, J)
๊ทธ๋ฆฌ๊ณ ํ์ฌ ๋ณด์ ์ค์ธ ์ฌ๋ฃ๋ A, B, D, F, H๋ผ๊ณ ํ์
'์์ดํ 1๊ฐ๋น ์ฌ๋ฃ 3๊ฐ'๊ฐ ๊ธฐํ์ ์ผ๋ก ๊ณ ์ ๋์ด์๋ค๋ ๊ฐ์ ํ์ ๋ค์๊ณผ ๊ฐ์ด ํ ๋น/๊ฒ์๋ก์ง์ ์งค ์ ์์
-ํ ๋น-
10๊ฐ์ค 3๊ฐ์ ์ฌ๋ฃ๋ฅผ ๊ณจ๋ผ ์์ดํ ์ ์กฐํฉํ๋๊ฑฐ๋๊น ์ด 10C3๊ฐ์ ์์ดํ ๋ชฉ๋ก์ด ์์
์กฐํฉ๊ฒฐ๊ณผ๋ฅผ ์์๋๋ก ๋์ดํ๋ฉด ABC=0, ABD=1, ABE=2, ...HIJ=119๊ฐ ๋๊ฒ ์ง? Item[] ItemLibrary์ ์์๋๋ก ์ ์ฅํ ๊ฒ์
์กฐํฉ์ ๊ฒฐ๊ณผ๋ฅผ ์ธ๋ฑ์ฑํด์ฃผ๋ ๋์ ๋๋ฆฌ Dictionary<string, int> indexTable = new Dictionary<string, int>() ๋ฅผ ๋ง๋ค์ด๋
๋ง์ฝ string์ int๋ก ์ค์ด๊ณ ์ถ๋ค๋ฉด ๋นํธ๋ง์คํน์ผ๋ก ๋ ์ค์ผ ์ ์๊ธดํจ(ABC->0000000111->7, ABD->0000001011->11, ...HIJ->1110000000->896)
์ฆ ItemLibrary[0]=ABC, ItemLibrary[1]=ABD, ItemLibrary[2]=ABE, .... ItemLibrary[119]=HIJ ์
์ฌ๊ธฐ์๋ ๋ก์ง๋ง ์ฐ๋๋ผ string์ผ๋ก ์ผ๋๋ฐ Item ํด๋์ค ๋ง๋ค์ด์ Item ๋ฐฐ์ด๋ก ํ๋ฉด๋จ
-๊ฒ์-
๋ณด์ ์ค์ธ ์ฌ๋ฃ A, B, D, F, H์ ์กฐํฉ์ ๊ตฌํจ ์ด๊ฑธ ๊ฒ์ Key๊ฐ์ผ๋ก ์ฌ์ฉํ ๊ฒ์
A, B, D, F, H์ ์กฐํฉ์ ABD, ABF, ABH, BDF, ...., DFH๊ฐ ์์ GetCombination์ผ๋ก ๊ตฌํ ์ ์์
๊ฐ ์กฐํฉ๊ฒฐ๊ณผ๋ฅผ ์์์ ๋ง๋ค์ด๋์ indexTable๋ก ์ธ๋ฑ์ค๊ฐ์ ์ฐพ์์ ๊ฒ์ํ๋ฉด ๋!
๋ง๊ธ์์ ๋งํ๋ฏ์ด ๋์ค์ ์ฌ๋ฃ์๊ฐ ๋ง์์ง์๋ก ํจ์จ์ด ์ ์ ๋จ์ด์ง๋ ๋ฐฉ๋ฒ์
์ ์ตํ๋ค