Dictionary <int, bool> ์ด๋ฐ์์ผ๋ก ์ ์ธํด์ ๋ค false๋ก ํ ๋ค์
๋งต์์ ํด๋น ์์ดํ ์ ๋จน์ผ๋ฉด int ์ ์๋ id ๊ฐ ๋น๊ตํ๊ณ
bool = true๋ก ํด์ ๋๊ฐ์ ํ์ํ๋ ค๊ณ ํ๋๋ฐ
์ด๊ฑฐ๋ณด๋ค ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด๋ ๋ํผ๋ฐ์ค ๊ฐ์๊ฑฐ ์์? ์์ด๋ก ์ด๋ป๊ฒ ์ณ์ผํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค
๊ทธ๋ฅ ์๊ฐ๋๋๋ก ๊ตฌํํ๊ณ ๊ทธ๊ฒ ์ ๋ง ํผํฌ๋จผ์ค์ ์ฌ๊ฐํ ์ํฅ ์์ผ๋ฉด ๊ทธ๋ ๊ฐ์ ๋ฆฌํฉํ ๋ง ํด๋ ๋ผ. ๊ธ๊ณ dictionary ๋ณด๋ค๋ hashtable์ด ๋์๋ณด์
์๋๋ค dictionary๊ฐ ์ด์ฐจํผ hashtable ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋๋ค๋ค
๊ณ ๋ง์ ํ๋ฒ ์์๋ด์ผ๊ฒ ๋ค
hashtable์ genetic๋จ๊ฒ dictionary์๋๋
generic
๊ตณ์ด
HashSet์ id๋ง ๊ธฐ๋กํ๊ณ Contains๋ก ์๋์ง ์๋์ง๋ง ์ฒดํฌํ๋ฉด ๋์๋ ธ
HashSet์ Key๋ง ์๋ Dictionary๋ผ๊ณ ์๊ฐํ๋ฉด ๋จ ใ ใ
์ด๋ป๊ฒํ๋๋ผ ๋ ๋์ ๋ฐฐ์ด ๊ฐ์ด ์จ์ ui ์ ๋ฐ์ดํธ๋ ์ธ๋ฑ์ค๋ก ํด๋ฒ๋ฆผ. ๋์ ๋๋ฆฌ๋ ๊ฐ์ด ์
์ธ๋ถ์ด๋ค ์๋;; HashSet์ ์ ์? ์์ง ์์งํ์ง ์์(false) ์์ดํ ์ ์ด๋ป๊ฒ ๋ณด์ฌ์ฃผ๋ ค๊ตฌ? ๋์ ๋๋ฆฌ๋ ๊ฒ์ ์๋ ๋น ๋ฅธ ์ปฌ๋ ์ ์ธ๋ฐ ๊ตณ์ด ์์ฐ๋ ค๋ ์ด์ ๋ฅผ ์ฐพ์์ผํจ?
์๋ค์ด์์ผ๋ฉด ์์ง ์ํ๊ฑฐ์ง ๋ญ
HashSet์ด๋ Dictionary๋ ๊ทผ๋ณธ์ ์ผ๋ก ์๋๋ ๋๊ฐ์ด
๊ตณ์ด ๊ณต๊ฐ ๋ญ๋น ํ์ง ๋ง๋๊ฑฐ์ง
ํด์์ ์ด๊ณ ๋์ ๋๋ฆฌ๊ณ ๊ฒฐ๊ตญ ๊ฒ์ ๋ด ์ ์ฒด ์์ดํ ๋ฆฌ์คํธ ์ค์ ํน์ ์กฐ๊ฑด(์ฅ๋น ์์ดํ , ์์ง ๊ฐ๋ฅํ ์์ดํ )์ ๋ง๋ ์์ดํ ๋ค์ ๋นผ๋ด์ ๋๊ฐ์ผ๋ก ๋ณต์ฌํ๋๊ฒ ๊ฐ์ฅ ๊น๋ํ ๋ฐฉ๋ฒ์ธ๋ฐ, ๊ทธ๋ฌ๊ธฐ ์ํด์๋ ์์ดํ ๋ฆฌ์คํธ์ ์ปฌ๋ ์ ๊ณผ ๋์ผํ๊ฒ ์ฐ๋๊ฒ ์ข๊ฒ ์ง? ์๋ฅผ ๋ค์ด ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ์ด๋ฏธ ๋์ ๋๋ฆฌ๋ก ๊ตฌํํ์ผ๋ฉด ๋๊ฐ๋ ๋์ ๋๋ฆฌ๋ก ํ๋๊ฒ ์์ ํ๊ธฐ๋ ํธํ๊ณ ๋ฌธ์ ๊ฐ ๋ ์๊ธฐ์ง
์์ดํ ์ธํฌ ํด๋์ค์ ๊ณ ์ key๊ฐ ๋ฃ๊ณ (ex.๋ฌธ์ฌ์ธ์ ์งํก์ด key๊ฐ 2278) ๋๊ฐ ๋์ ๋๋ฆฌ๋ key:์์ดํ ๊ณ ์ key๊ฐ, value:์์ง ์ฌ๋ถ true/false ์ด๋ ๊ฒ ๊ตฌํํ์
์ด๋ฏธ ์์ดํ ์ ์ฒด ์ ๋ณด๊ฐ ๋ค๋ฅธ๊ณณ์ ์๋๋ฐ ์ ๊ทธ๊ฑธ ๊ตณ์ด ๋นํจ์จ์ ์ด๊ฒ ๊ฐฏ์๋งํผ ๋ถ๋ฆฌ์ธ์ ๋ค ๋ง๋ค์ด ์์ ๋ณ์ ์ ใ ใ ใ ํด์ฌ์ ์ ํ๋ํ ์์ดํ ์์ด๋๋ง ์์ผ๋ฉด ์ถฉ๋ถํ์ง
ในใ ใ ใ
ํนํ ์ฑ๊ธ๊ฒ์ด๋ฉด ์๊ด์๋๋ฐ ์๋ฒ ๊ด๋ จ๋๋๊ฑฐ๋ฉด ์ด๋ฐ๊ฑฐ ๊ตฌํํ ๋ ํ๋ ์ํ๊ฑฐ false๋ก ๋ง๋ค์ด๋์ผ๋ฉด ์ ์์ดํ ์ ๋ฐ์ดํธ ๋ ๋๋ง๋ค ๋๊ฐ๋๋น์ ์ ์์ดํ ํ๋์ฌ๋ถ๋ false๋ก ๋ ๋ฃ์ด์ค์ผํด์ ์ํฐํจํด์
์๋ ๊ทธ๋ฌ๋ฉด ์์งํ์ง ์์ ์์ดํ ์ ์ด๋ป๊ฒ ๋ณด์ฌ์ค๊ฑฐ๋๊ณ ใ ใ ์ ์ฒด ์์ดํ ๋ฆฌ์คํธ 100๊ฐ๊ณ ์์งํ ๋ฆฌ์คํธ์ 20๊ฐ ๋ค์ด์์ผ๋ฉด ๋๋จธ์ง 80๊ฐ๋ ์ผ์ผ์ด ์ ์ฒด ์์ดํ ๋ฆฌ์คํธ๋ ๋น๊ต์งํด์ ์์ดํ ํค ๊ฐ ๊ตฌํ ๊ฑฐ์? ์ด๊ฒ ๋ ๋ณ์ ๊ฐ์๋ฐ
๋๊ฐ ๋ฆฌ์คํธ์ ํ๋ํ์ง ์์ ์์ดํ ๋ ๊ทธ ์์ดํ ํค๊ฐ์ด ๋ค์ด๊ฐ์ผํ๋ค๋๊ฒ ํต์ฌ์
?
์์ดํ ID๋ฅผ ์๋๋ฐ ์์ง ๊ฐ๋ฅํ ์ฌ๋ถ๋ฅผ ๋ชจ๋ฅด๋๊ฑด ๋์ฒด ๋ฌด์จ ๊ตฌ์กฐ์
๋ต๋ตํ๋ค... ๋ด๊ฐ ๋งํ ์์ดํ ๋ฆฌ์คํธ๋ ์์ ์์ํ๊ฒ ์์ดํ ์ ๋ณด๋ง ๋ด๊ณ ์๋ ๊ทธ๋ฐ ๋ฆฌ์คํธ์. ์์ดํ ๋๋, ์์ , ์ธ๋ฒคํ ๋ฆฌ ๋ฑ๋ฑ ์์ดํ ๊ด๋ จ๋ ๋ชจ๋ ๊ณณ์์ ์์ดํ ํค ๊ฐ์ผ๋ก ์์ดํ ์ ๋ณด๋ง ํ๋ํ ์ ์๋ ๋ฆฌ์คํธ์. ๋น์ฐํ ๋๊ฐ ๋ฆฌ์คํธ๋์ ๋ ๋ฆฝ์ ์ด๊ณ ์์ง ์ฌ๋ถ๋ ์์. ์ฌ๊ธฐ์ ์์ง ์ฌ๋ถ๋ฅผ ๋ฃ์๊ฑฐ๋ฉด ์์ดํ ๊ตฌ์กฐ๊ฐ ์ด๋ป๊ฒ ๋ง๊ฐ์ง์ง ์ ์๊ฐํด๋ด
๊ทธ๋ฆฌ๊ณ ์์ง ๊ฐ๋ฅํ ์ฌ๋ถ๊ฐ ์๋๊ณ ์์ง ์๋ฃํ ์ฌ๋ถ๋ฅผ ์๊ธฐํ๋๊ฑฐ๋ค
์ด... ์... ๊ทธ๋
foreach (์์ดํ ์ ๋ณด in ๋๊ฐ ๋งํ๋ ์ ์ฒด ์์ดํ ๋ฆฌ์คํธ) { ์์ง์ฌ๋ถ = ๋๊ฐ ํด์ฌ์ .Contains(์์ดํ ์ ๋ณด.Id); //1 ์์ง์ฌ๋ถ = ๋๊ฐ ๋์ ๋๋ฆฌ[์์ดํ ์ ๋ณด.Id]; //2 } ๋ญ๊ฐ ๋ค๋ฅธ์ง ์ค๋ช ์ข?
์๋ ๋ญ์ผ ๋๊ธ์. ์ผ๋จ ๋ค ์ฝ์ด๋ณด๊ณ ์ฐฌ์ฐฌํ ๊ตฌํํด๋ณผ๊ป
๊ทธ๋ฆฌ๊ณ ์ง๋ฌธ์ด ์ข ๋ถ์คํ๋๊ฑฐ ๊ฐ์๋ฐ ์ฑ๊ธ๊ฒ์ ์๋ฒ ์์ฐ๊ณ ์๋ชจ์ ์์ดํ ์ ์ค๋ฃจ์ฃ์ผ๋ก๋ง ๋ณด์ฌ์ค ์์ ์ด์ผ
์ ๊ทธ๋ฆฌ๊ณ ์ธ๋ฒคํ ๋ฆฌ๋ ์์ด
๊ฑ ๋์ ๋๋ฆฌ ๊ทธ๋๋ก ์จ๋ ๋ฌธ์ ์์ด