๊ฐ์ง๋ฅผ ๋์ด๋ฒ๋ฆฌ๋ ๋ฐฑ ํธ๋ํน์ ๋ํด ์์๋ณด์.
ํธ๋ฆฌ ๋ฐฉ๋ฌธ
ํธ๋ฆฌ ๋ฐฉ๋ฌธ ๋ฐฉ๋ฒ
- preorder
- ์์ , ์ข์ธก, ์ฐ์ธก
- ์ฉ์ด์ ์ด์ ๋ ๋์ ํ ์ ์๊ฐ ์๋คโฆ
- ์๋ง ๋ฐฉ๋ฌธ ์ (pre)์ ๋๋ถํฐ ๋ฐฉ๋ฌธํ๋ผ๋ ๋ปโฆ?
- inorder
- ์ข์ธก, ์์ , ์ฐ์ธก
- ์(in) ๋ถํฐ ๋ฐฉ๋ฌธ
- postorder
- ์ฐ์ธก, ์์ , ์ข์ธก
- ๋์ค(post) ๋ถํฐ ๋ฐฉ๋ฌธ
- level order
- tree์ ๊น์ด ๋ณ๋ก ๋ฐฉ๋ฌธ
DFS
- ๋ฟ๋ฆฌ ๋ถํฐ ๋ฐฉ๋ฌธํด์ ํด๋น ๋ง๋์ ํ์์ ์ฐจ๋ก๋ก ๋ฐฉ๋ฌธํ๋ค.
- ๋ณดํต ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐฉ๋ฌธ
N Queen
์ํ๊ณต๊ฐ์ ๊ณ์ธต์ ์ผ๋ก ํํ ์ํ ๊ณต๊ฐ ํธ๋ฆฌ
- ํธ์ด ์๋ก ๊ฒน์น์ง ์๋๋ก nxn ์ฒด์คํ์์ ํธ์ ๋๋ ๋ฐฉ๋ฒ์ ๊ตฌํ๋ ๋ฌธ์ .
- ํธ n๊ฐ๋ฅผ ๋๋ ๊ณต๊ฐ์ ๋ฐ๋ผ ๋ฐ์ํ๋ ์ํ๋ฅผ ๋ํ๋ธ ๊ฒ์ ์ํ ๊ณต๊ฐ ์ด๋ผ ํ๋ค.
- ์์ ๊ตฌ์กฐ๋ฅผ ํธ๋ฆฌ ํํ๋ก ๋ํ๋ผ ์ ์๋ค.
- ์๋๋ก ๋ด๋ ค๊ฐ๋ฉด์ ํด๋น ๊น์ด์์ ์ ํํ ๊ฐ์ ์ ์ฅํด๋๋ ๊ฒ
๋ฐฑ ํธ๋ ํน
๋ฐฑ ํธ๋ ํน
- ๊ทธ๋ฐ๋ฐ ์ด๋ฐ ์ํ ๊ณต๊ฐ์ n์ด 4๋ผ๊ณ ํ๋ฉด ๊ต์ฅํ ๋ง์์ง๋ค.
- ์กฐ๊ธ๋ง ์๊ฐํด๋ณด๋ฉด ๋ชจ๋ ๋ ธ๋์ ๋ํด ํ์ํด์ผ ํ๋ ํ์์ฑ์ด ์๋์ง ์๋ฌธ์ด ๋ ๋ค.
- ์ ์ด์ ์๋๋ ๊ฒฝ์ฐ๋ ํ์์ ์ํ๋ ๊ฒ์ด ๋ง๊ธฐ ๋๋ฌธ
- ์ด๊ฑธ ๊ฐ์ง์น๊ธฐ ๋ฐฉ๋ฒ, ๋ฐฑ ํธ๋ ํน์ด๋ผ ํ๋ค.
๋ฐฑ ํธ๋ํน์ ์ฌ์ฉํ 4 queens
DFS, Back Tracking
๊น์ด ์ฐ์ ๊ฒ์์ ๊ฒ์ ๋ง๋ ๊ฐ์
- ๊ทธ๋ฅ dfs๋ฅผ ํ๋ฉด ๋ต์์ ์ฐพ๋๋ฐ ๊น์ง 155๊ฐ
- back tracking์ ์ฌ์ฉํ๋ฉด 27๊ฐ
- ์ฌ์ค ์ง๊ธ์ ๊ตฌ์กฐ๋ฅผ ์ด๋ป๊ฒ ์งฐ๋๋ฉด
- ํน์ ๋ง๋์ ๋ฐฉ๋ฌธ
- ํด๋น ๋ง๋๊ฐ ๊ฐ๋ฅํ์ง ํ์ธ
- ํด๋น ๋ง๋์ ์ฐ๊ฒฐ๋ ๊ฒ๋ค ์๋
- ์ ๊ฐ์ด ๊ตฌ์ฑ์ด ๋์ด ์๋ค.
- ํ์ง๋ง ์ค์ ๋ก๋
- ํด๋น ๋ง๋์ ๋ฐฉ๋ฌธ
- ๋ง๋์ ์ฐ๊ฒฐ๋ ๋ ธ๋๋ค์ ๋ํด์ ๊ฐ๋ฅํ์ง ํ์ธ
- ๊ฐ๋ฅํ๋ฉด ๋์ด๊ฐ
- ์ ๊ตฌ์กฐ๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค.
- ๊ทธ ์ด์ ๋, ๋ง์ฝ ์ด์ ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด, ์ ์ด์ ๋์ง ์๋ ๋ฐฉ๋ฌธํ๊ณ ๊ทธ ์ฌ์ค์ ์๊ฒ ๋๋ค.
- ํ์ง๋ง ๋ฏธ๋ฆฌ ๊ฒ์ฆํ๊ณ ๋ฃ์ด์ค๋ค๋ฉด, ์ฌ๊ท ํธ์ถ์ ๋ํ๊ธฐ ๋๋ฌธ์ ๋ณด๋ค ํจ์จ์ ์ด๋ค.
์๋ ์ฝ๋
- ์ด ์ฝ๋๋ฅผ ์ดํดํ๋ ค๋ฉด, ์ฒ์์ ๋ค์ด๊ฐ๋ ์ธ์๊ฐ i๋ฒ์งธ ํธ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ col[i]๋ ํด๋น i๋ฒ์งธ ํธ(row์ ๋์ผํจ)์ column์์น๋ฅผ ๋ํ๋ธ๋ค.
๋ถ๋ถ์งํฉ์ ํฉ ๊ตฌํ๊ธฐ
- n๊ฐ์ item์ ์ฌ์ฉํ์ฌ item์ ๋ฌด๊ฒ์ ํฉ์ด W๊ฐ ๋๋ ๋ถ๋ถ์งํฉ์ ๊ตฌํ๋ค.
- ์ด ๋ฌธ์ ์ ์ํ๊ณต๊ฐ ํธ๋ฆฌ๋ ๋ฃ๊ณ ๋ง๊ณ ์ด๋, ์ด์ง ํธ๋ฆฌ ๋ชจ์์ผ๋ก ๋ง๋ค์ด์ง๋ค.
- ๊ทธ๋ ๊ฒ ๋๋ฉด ์๊ฐ ๋ณต์ก๋๊ฐ ๋๋ฌด ๋ง์ด ๋ฐ์ํ๋ค.
- ์ ๋ ฌ๋์ง ์์ ์ํ์์ ํ ๊ฒฝ์ฐ, ์ต์ด์ ๋ชฉํ ๋ฌด๊ฒ๋ณด๋ค ํฐ ๊ฐ์ด ๋ค์ด๊ฐ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
- ๋ฌด์จ ์๊ธฐ๋๋ฉด, ๊ฒฐ๊ตญ ์ํ๊ณต๊ฐ ํธ๋ฆฌ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๋ฐฑํธ๋ ํน ๋ฐฉ๋ฒ์ ์๋ํ ๊ฑฐ๋ค.
- ๊ทธ๋ฌ๋ฉด ์ด๋ฅผ ๋ถ๊ฐํด์ค ๊ฒ์ด ํ์ํ๋ฐ, ๊ทธ๊ฒ์ ๋ฃ์์ ๋, ํด๋น ๋ฌด๊ฒ๋ฅผ ๋์ ๊ฒฝ์ฐ ํ์ ์์ฒด๋ฅผ ํ์ง ์์๊ฒ์ด๋ค.
- ๊ทธ๋ฐ๋ฐ ๋ง์ฝ ์์ฒญ ํฐ ๊ฐ์ด ๋ค์ด๊ฐ๋ค๋ฉด ํ๊ฒจ์ ธ ๋์ค๊ฒ ๋๋ค.
- ๊ทธ๋ฌ๋๊น ์ผ๋จ ๋ฃ์ ์ ์๋ ๊ฑธ ์๊ฒ์๊ฒ ๋ฃ์ด๋ณด๋ฉด์ ํ๋จํ๋ ๊ฒ์ด ์ณ๋ค.
- ์ด ๋ ๋ถ๊ธฐ๋, ๋ค์ ์์ดํ ์ ๋ฃ์๋๋ ์ํ๋ ๋ฌด๊ฒ๋ฅผ ๋์ด๊ฐ๋ค โ ๋ณผ ํ์ ์์
- ์ดํ์ ๋ฌด๊ฒ๋ฅผ ๋ค ๋ฃ์ด๋ดค๋๋ฐ W๋ณด๋ค ์๋ค. โ ์ ์ด์ ๊ธ๋ ์ ๋ณผํ์ ์์
์๋ ์ฝ๋
- ๊ทธ๋์ ๊ณ์ํ ๋๋ง๋ค
- ๋จ์ ์์์ ์ด ํฉ : total
- ์ง๊ธ๊น์ง์ ๋ฌด๊ฒ : weight
- ์ง๊ธ์ ์์ ๋ฒํธ : i
- ์ด๋ ๊ฒ 3๊ฐ๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค.
- ๊ฒฐ๊ตญ
- ์ง๊ธ ๋ผ?
- OK ๋ค์๊ฑฐ ๊ฐ๋ณด์
- ๋นผ๊ณ ๊ฐ๋ณด์
- ์ด๊ฒ ๋ค๋ค.
๊ทธ๋ํ ์์น ํ๊ธฐ
๊ณ ๋ฑํ๊ต ๋ ์ด๋์ ๊ฐ ๋ณด์๋ ๋ฌธ์ ..
ํ๋ฉด ๊ทธ๋ํ
- ํ๋ฉด ์์์ edge๋ฅผ ๊ทธ๋ ธ๋๋ฐ, ์๊ฐ๋ฆฌ์ง ์๊ฒ ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ.
- ์ด๊ฒ 4์ ๋ฌธ์ ๋ ๋น์ฐํ ์ด๋ ๊ฒ ๋์ฌ ์ ๋ฐ์ ์์
- ๋ฉด์ด ๋ค ๋ถ์ด์์์!
- ๋ง์ฝ ๋นํ๊ธฐ๋ฅผ ํ๊ณ ๋ ์๊ฐ(3์ฐจ์)
- ์ด๋ฌ๋ฉด ์๋์ง. ๊ทธ๋์ ํ๋ฉด? ๊ทธ๋ํ์ธ๊ฐ๋ณด๋ค
๋ฐฑ ํธ๋ํน ์ํ๊ณต๊ฐ ํธ๋ฆฌ
- ์๋ ๋ณด๋ฉด ๋ณ๊ฑฐ ์๋ค.
- ๊ฒฐ๊ตญ ์ด๋ ์๊ฐ์ด ์๋์ง์ ๋ํด์ ๋ช ์์ ์ผ๋ก ์์๋ด์ผ ํ๋ค.
- ์ธ์ ํด ์๋๋ฐ, ๊ฐ์ ์์ด์ผ : ๊ธฐ๊ฐ
- ์ธ์ ํด ์๋๋ฐ, ๋ค๋ฅธ ์์ด์ผ : OK
- ์ธ์ ํ์ง ์์์ด : ๊ธฐ๊ฐ