๊ฐ€์ง€๋ฅผ ๋Š์–ด๋ฒ„๋ฆฌ๋Š” ๋ฐฑ ํŠธ๋ž˜ํ‚น์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

ํŠธ๋ฆฌ ๋ฐฉ๋ฌธ

ํŠธ๋ฆฌ ๋ฐฉ๋ฌธ ๋ฐฉ๋ฒ•

  • 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
  • ์ธ์ ‘ํ•˜์ง€ ์•Š์•˜์–ด : ๊ธฐ๊ฐ