CS ์ง€์‹ TIL(1)

YulHee Kimยท2021๋…„ 8์›” 7์ผ
0

CS

๋ชฉ๋ก ๋ณด๊ธฐ
1/9
post-thumbnail

๐Ÿ“š ํ•˜๋ฃจ์— ํ•œ๋ฒˆ์”ฉ ๋ฐฐ์šด ๊ฒƒ๊ณผ ์ง€์‹์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ์“ฐ๋Š” ๊ธ€

์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

1. Stack, Queue์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.


  • ๋‹ต

    Stack์€ ๋จผ์ € ๋“ค์–ด์˜จ ์ž๋ฃŒ๊ฐ€ ๋‚˜์ค‘์— ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰ FILO(First In Last Out)์ž…๋‹ˆ๋‹ค. Stack์€ ์ ‘๊ทผ์„ฑ์— ์ œํ•œ์ด ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์˜ค์ง ๋งจ ์œ„์— ์ถ”๊ฐ€(push)ํ•  ์ˆ˜ ์žˆ๊ณ , ๋งจ ์œ„์— ๊ฒƒ๋งŒ ๋‚˜๊ฐˆ(pop) ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Queue๋Š” ๋จผ์ € ์˜จ ์‚ฌ๋žŒ์ด ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰ FIFO(First In First Out)์ž…๋‹ˆ๋‹ค. Enqueue(๋“ค์–ด์˜ด)๊ณผ Dequeue(๋‚˜๊ฐ) ๋‘๊ฐ€์ง€ ๋™์ž‘๋งŒ ํ—ˆ์šฉ๋œ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค

    Stack๊ณผ Queue์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ item์„ ์‚ญ์ œํ•  ๋•Œ์ž…๋‹ˆ๋‹ค. ์Šคํƒ์€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€๋˜์–ด ์žˆ๋˜ item์„ ์‚ญ์ œํ•˜๊ณ , Queue๋Š” ์ฒ˜์Œ์œผ๋กœ ๋“ค์–ด์™€ ์žˆ๋˜ item์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

2. Heap, Priority Queue์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.


  • ๋‹ต

    ํž™์€ ํŠน์ • ์—ฐ์‚ฐ์„ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ด์ง„ ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์ž์‹ ๋…ธ๋“œ๊ฐ„์˜ ์ผ๋ จ์˜ ๊ทœ์น™์„ ํ†ตํ•ด ์ผ๊ด€์„ฑ ์žˆ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•ด๋‚ด๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

    ์ตœ์†Œ ํž™์€ ๋ถ€๋ชจ๊ฐ€ ์ž์‹๋ณด๋‹ค ์ž‘์€ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉฐ ๋ฃจํŠธ๋…ธ๋“œ๊ฐ€ ์ฆ‰ ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ ์ตœ์†Ÿ๊ฐ’์ด ๋œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์ตœ๋Œ€ ํž™์€ ๋ถ€๋ชจ๊ฐ€ ์ž์‹๋ณด๋‹ค ํฐ ์ž๋ฃŒ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฃจํŠธ๋…ธ๋“œ๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ“๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

    Binary Heap์„ ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ ์ด์ง„ ํŠธ๋ฆฌ์˜ Root ๋…ธ๋“œ๋ถ€ํ„ฐ ๋‹จ์ผ leaf ๋…ธ๋“œ๊นŒ์ง€์˜ ์ˆœํšŒ ๋น„์šฉ๋งŒ ๊ฐ€์งˆ ๋ฟ์ด๋ฏ€๋กœ Insert์™€ Delete ์—ฐ์‚ฐ์ด ๋ชจ๋‘ O(logN)์˜ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋ฉฐ ์ตœ์†Œํž™/์ตœ๋Œ€ํž™ ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์  ํž™์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ, ์กฐํšŒ(Peek)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(1)๋กœ ์•„์ฃผ ํšจ์œจ์ ์ด๋‹ค.

    Priority Queueย ๋ฅผ Heap ์„ ์ด์šฉํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ Heap ๊ณผ Priority Queue ๊ฐ„์—๋Š” ์ง์ ‘์ ์ธ ์—ฐ๊ด€์€ ์—†์œผ๋ฉฐ ๋‹ค๋งŒ ๊ตฌํ˜„์— ์žˆ์–ด์„œ๋„, ๊ธฐ๋Šฅ์— ์žˆ์–ด์„œ๋„ Heap ์„ ์ด์šฉํ•ด ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ด๋ฏ€๋กœ ๊ฑฐ์˜ ๋™์ผ์–ด๋‚˜ ๋‹ค๋ฆ„์—†์ด ํ˜ผ์šฉ๋˜๊ณ  ์žˆ์„ ๋ฟ์ด๋‹ค.

    ์ถœ์ฒ˜:

    https://jins-dev.tistory.com/entry/ํž™Heap-์šฐ์„ ์ˆœ์œ„ํPriority-Queue-์˜-๊ตฌํ˜„๊ณผ-์„ฑ์งˆ

    [Jins' Dev Inside]

3. Tree, Binary Tree, BST, AVL Tree์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.


  • ๋‹ต

    tree์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ทธ๋ž˜ํ”„์˜ ํ•œ ์ข…๋ฅ˜๋กœ, ์–ด๋–ค ๋…ธ๋“œ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋…ธ๋“œ๋“ค์€ ๊ฐ ์„œ๋กœ ์žฌ์‚ฌ์šฉ ๋˜์ง€ ์•Š๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ํŠธ๋ฆฌ์˜ ๊ฐ€์žฅ ๋นˆ๋ฒˆํ•œ ์‚ฌ์šฉ์ด ๋˜๋Š” Binary Tree์—์„œ ํŠน์ • ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ ‘๊ทผ O(N)์ด ์•„๋‹Œ O(logN)์ด ๋จ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ํŠธ๋ฆฌ์˜ ์ข…๋ฅ˜๋Š” ํฌ๊ฒŒ Binary Tree์™€ None-Binary Tree๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Binary Tree๋Š” ์ด์ง„ ํŠธ๋ฆฌ๋กœ ๊ฐ ๋…ธ๋“œ์— ๋Œ€ํ•ด์„œ ๋‘๊ฐœ ์ดํ•˜์˜ ์ž์‹์„ ๊ฐ€์ง์„ ์˜๋ฏธํ•˜๊ณ , non-binary tree์˜ ๊ฒฝ์šฐ ๋…ธ๋“œ์˜ ์ž์‹ ๊ฐœ์ˆ˜์— ๋Œ€ํ•œ ์ œํ•œ์ด ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

    ์ด์ง„ํŠธ๋ฆฌ๋Š” ํ™œ์šฉ๋„์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋‚˜๋‰˜์–ด์ง‘๋‹ˆ๋‹ค. BST(Binary-Search-Tree)๋Š” ๊ฐ€์žฅ ์œ ๋ช…ํ•˜๊ณ  ์ ‘๊ทผ์„ฑ์ด ์šฉ์ดํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ ๋…ธ๋“œ๋Š” left Subtree ์™€ right Subtree์˜ ๋ฃจํŠธ๋ฅผ ์ž์‹์œผ๋กœ ๊ฐ€์ง€๋ฉฐ ์ด๋•Œ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋Š” ์ž์‹ ๋ณด๋‹ค ์ž‘์€๊ฐ’์„ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋Š” ์ž์‹ ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ˜•ํƒœ์˜ ์ด์ง„ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค. BST์˜ ์žฅ์ ์€ ์ž๋ฃŒ ์ž…๋ ฅ,์‚ญ์ œ,ํƒ์ƒ‰ ๋ชจ๋‘ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O( log N ) ์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๋ฐฐ์—ด ์ด์ง„ํƒ์ƒ‰์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ๋™์ผํ•˜์ง€๋งŒ ์ž๋ฃŒ์˜ ๋ณ€๊ฒฝ, ์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

    AVL ํŠธ๋ฆฌ๋Š” ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ์ด์ง„ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ AVL ํŠธ๋ฆฌ๋Š” ์ด์ง„ํŠธ๋ฆฌ์™€ ์ด์ง„ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ํŠน์ง•๋“ค์„ ๋ชจ๋‘ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    • AVL ํŠธ๋ฆฌ์˜ ํŠน์ง•

      1) ์–ด๋–ค ๋…ธ๋“œ๋ผ๋„ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์™€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋†’์ด ์ฐจ์ด๊ฐ€ 1๋ณด๋‹ค ํฌ์ง€ ์•Š๋‹ค. (์ตœ๋Œ€ ๋†’์ด ์ฐจ์ด๋Š” 1์ด๋‹ค)

      โ‡’ Binary Tree์ด๋ฉด์„œ ์ตœ๋Œ€ ๋†’์ด ์ฐจ์ด๊ฐ€ 1์ด๋ผ๋Š” ๋ง์€ height = O(logN)์ด๋ผ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

      2) ๋งŒ์•ฝ ํŠน์ • ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ–ˆ์„ ๋•Œ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์™€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋†’์ด ์ฐจ์ด๊ฐ€ 1๋ณด๋‹ค ์ปค์ง€๋Š” ๋…ธ๋“œ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด, re-balancing์„ ํ†ตํ•ด a ๊ทœ์น™์— ์–ด๊ธ‹๋‚˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

      โ‡’ ์ด ๋ง์€ AVL ํŠธ๋ฆฌ๋Š” ์ž๊ฐ€ ๊ท ํ˜• ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ผ๋Š” ๋ง๊ณผ ๊ฐ™๋‹ค.

      3) ๊ท ํ˜• ํŠธ๋ฆฌ์ด๋‹ค. (๋†’์ด ๊ท ํ˜• ํŠธ๋ฆฌ)

      โ‡’ ๊ท ํ˜• ํŠธ๋ฆฌ๋Š” ์•„๋ž˜ ์„ธ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ํŠธ๋ฆฌ์ด๋‹ค.

    1. ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋†’์ด ์ฐจ์ด๊ฐ€ ์ตœ๋Œ€ 1์ด๋‹ค.

    2. ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๊ฐ€ ๊ท ํ˜• ํŠธ๋ฆฌ์ด๋‹ค.

    3. ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๊ฐ€ ๊ท ํ˜• ํŠธ๋ฆฌ์ด๋‹ค.

      4) ๊ฐ ๋…ธ๋“œ๋Š” ๊ท ํ˜•๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ด ๊ท ํ˜•๊ฐ’์€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋†’์ด์—์„œ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋†’์ด๋ฅผ ๋บ€ ๊ฐ’์ด๋‹ค. ์ด ๊ฐ’์€ ํ•ญ์ƒ {-1, 0, 1} ์…‹ ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค.

      5) ๊ท ํ˜• ๊ฐ’์ด ๋งˆ์ด๋„ˆ์Šค๋ฉด left-heavy, ํ”Œ๋Ÿฌ์Šค ๊ฐ’์ด๋ฉด right-heavy๋ผ๊ณ  ํ•œ๋‹ค.

      6) pivot ๋…ธ๋“œ๋Š” ์ƒˆ๋กœ์šด ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์„ ๋•Œ ๊ท ํ˜•๊ฐ’์— ๋ณ€๋™์ด ๋ฐœ์ƒํ•˜์—ฌ unbalanced ๋œ ๋…ธ๋“œ๋“ค ์ค‘ ์‹ ๊ทœ๋…ธ๋“œ์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ฅผ ๋งํ•œ๋‹ค.

      AVLํŠธ๋ฆฌ์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์Šค์Šค๋กœ ๊ท ํ˜•์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ํŠธ๋ฆฌ์˜ ํšŒ์ „์„ ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์™ผ์™ผ : ๋ถ€๋ชจ ๋…ธ๋“œ์™€ pivot ๋…ธ๋“œ์˜ ๊ท ํ˜•๊ฐ’์ด ๋ชจ๋‘ left-heavy์ธ ๊ฒฝ์šฐ

      โ‡’ Single Right rotation (์˜ค๋ฅธ์ชฝ์œผ๋กœ 1ํšŒ์ „)

    • ์˜ค์˜ค : ๋ถ€๋ชจ ๋…ธ๋“œ์™€ pivot ๋…ธ๋“œ์˜ ๊ท ํ˜•๊ฐ’์ด ๋ชจ๋‘ right-heavy์ธ ๊ฒฝ์šฐ

      โ‡’ Single Left rotation (์™ผ์ชฝ์œผ๋กœ 1ํšŒ์ „)

    • ์™ผ์˜ค : ๋ถ€๋ชจ ๋…ธ๋“œ์™€ pivot ๋…ธ๋“œ์˜ ๊ท ํ˜•๊ฐ’์ด ๊ฐ๊ฐ right-heavy, left-heavy์ธ ๊ฒฝ์šฐ

      โ‡’ Double Left-Right rotation (์™ผ์ชฝ์œผ๋กœ ํ•œ๋ฒˆ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ๋ฒˆ ์ด ๋‘๋ฒˆ์˜ ํšŒ์ „)

    • ์˜ค์™ผ : ๋ถ€๋ชจ ๋…ธ๋“œ์™€ pivot ๋…ธ๋“œ์˜ ๊ท ํ˜•๊ฐ’์ด ๊ฐ๊ฐ left-heavy, right-heavy์ธ ๊ฒฝ์šฐ

      โ‡’ Double Right-Left rotation (์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ๋ฒˆ, ์™ผ์ชฝ์œผ๋กœ ํ•œ๋ฒˆ ์ด ๋‘๋ฒˆ์˜ ํšŒ์ „)

      ์ถœ์ฒ˜ :

      http://www.secmem.org/blog/2019/05/09/ํŠธ๋ฆฌ์˜-์ข…๋ฅ˜์™€-์ดํ•ด/

      https://keichee.tistory.com/441

4. DFS, BFS์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.


  • ๋‹ต

    DFS(๊นŠ์ด์šฐ์„ ํƒ์ƒ‰)๋Š” ์Šคํƒ ํ˜น์€ ์žฌ๊ท€ํ˜ธ์ถœ์„ ํ†ตํ•ด ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰์€ ์šฐ์„  ๋‚˜(ํ˜„์žฌ ๋…ธ๋“œ)๋ฅผ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๊ณ  ๋‚˜์™€ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ๊ฒƒ๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฐฉ๋ฌธํ–ˆ๋˜ ๋…ธ๋“œ๋Š” ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด,ย DFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฏธ๋กœ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋‹ค๊ฐ€ ๋” ์ด์ƒ ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์—†๋Š” ๋…ธ๋“œ์— ์ด๋ฅด๋ €์„ ๋•Œ, ๋‹ค์‹œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐˆ๋ž˜๊ธธ๋กœ ๋Œ์•„๊ฐ€ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ ๋ฐฉํ–ฅ์œผ๋กœ ๋‹ค์‹œ ํƒ์ƒ‰์„ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด์–ด๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๊ทธ๋ž˜ํ”„์—์„œ ๊ฐ„์„ ์ด๋‚˜ ๋ณ€์ˆ˜ ์ •๋ณด๋ฅผ ์ˆ˜์‹œ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋Š” DFS๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ด๋ผ๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    BFS(๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰)์€ Queue๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ธ์ ‘ํ•œ ๋ชจ๋“  ๋…ธ๋“œ๋“ค์„ ๋™์‹œ์— ๋ฐฉ๋ฌธํ•˜์—ฌ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    BFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฃผ๋กœ ๊ทธ๋ž˜ํ”„์—์„œ ๋ชจ๋“  ๊ฐ„์„ ์˜ ๋น„์šฉ์ด ๋™์ผํ•œ ์กฐ๊ฑด์—์„œ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  "๋ฏธ๋กœ๋ฅผ ๋น ์ ธ๋‚˜๊ฐ€๋Š” ์ตœ๋‹จ ๊ฑฐ๋ฆฌ(๊ฒฝ๋กœ)"๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ๋“ฑ์—์„œ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค

    ์ถœ์ฒ˜:

    https://heytech.tistory.com/56

    [Hey Tech]

profile
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€