Post

๐Ÿน 2. Data Structures

01. ๋ฐฐ์—ด๊ณผ ๋ฌธ์ž์—ด

[ ํ•ด์‹œํ…Œ์ด๋ธ” ]

: ํ‚ค(key)๋ฅผ ๊ฐ’(value)์— ๋Œ€์‘์‹œ์ผœ ํšจ์œจ์ ์ธ ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒ๊ตฌ์กฐ

๊ตฌํ˜„ ๋ฐฉ์‹

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(linked list)์™€ ํ•ด์‹œ ์ฝ”๋“œ ํ•จ์ˆ˜(hash code function)์„ ์‚ฌ์šฉ

  1. key์˜ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
  2. hash(key) % array_length์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•œ๋‹ค. (์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ฐœ์˜ ํ•ด์‹œ ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.)
  3. ๋ฐฐ์—ด์˜ ๊ฐ ์ธ๋ฑ์Šค์— ํ‚ค์™€ ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํ‚ค์™€ ๊ฐ’์„ ํ•ด๋‹น ์ธ๋ฑ์Šค์— ์ €์žฅํ•œ๋‹ค.

    ์ถฉ๋Œ(์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ฐœ์˜ ํ•ด์‹œ ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ด)์— ๋Œ€๋น„ํ•˜์—ฌ ๋ฐ˜๋“œ์‹œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•œ๋‹ค.

์ˆ˜ํ–‰ ์‹œ๊ฐ„

  • ์ตœ์•…์˜ ๊ฒฝ์šฐ : ๋ชจ๋“  ํ•ด์‹œ๊ฐ’์ด ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๋Š” ๊ฒฝ์šฐ ํƒ์ƒ‰ ์‹œ๊ฐ„ O(N)
  • ์ตœ์„ ์˜ ๊ฒฝ์šฐ : ์ถฉ๋Œ์ด ํ•˜๋‚˜๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์•„ ํƒ์ƒ‰ ์‹œ๊ฐ„ O(1)

๋‹ค๋ฅธ ๊ตฌํ˜„๋ฐฉ๋ฒ•

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(balanced binarysearch tree)๋ฅผ ์‚ฌ์šฉ

  • ํƒ์ƒ‰ ์‹œ๊ฐ„ : O(logN)
  • ์žฅ์ 
    • ํฌ๊ธฐ๊ฐ€ ํฐ ๋ฐฐ์—ด์„ ๋ฏธ๋ฆฌ ํ• ๋‹นํ•ด ๋†“์ง€ ์•Š์•„๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ž ์žฌ์ ์œผ๋กœ ์ ์€ ๊ณต๊ฐ„ ์‚ฌ์šฉ
    • ํ‚ค์˜ ์ง‘ํ•ฉ์„ ํŠน์ • ์ˆœ์„œ๋กœ ์ฐจ๋ก€๋Œ€๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ

[ ArrayList์™€ ๊ฐ€๋ณ€ ํฌ๊ธฐ ๋ฐฐ์—ด ]

ArrayList๋Š” ์ผ๋ฐ˜ ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋™์  ๊ฐ€๋ณ€ ํฌ๊ธฐ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.

  • ์ ‘๊ทผ ์‹œ๊ฐ„ : O(1), ๋ฐฐ์—ด์ด ๊ฐ€๋“ ์ฐจ๋Š” ์ˆœ๊ฐ„ ํฌ๊ธฐ๋ฅผ ๋‘ ๋ฐฐ๋กœ ๋Š˜๋ฆฌ๋Š” ์‹œ๊ฐ„์€ O(n)์ด์ง€๋งŒ ๋“œ๋ฌธ ์ผ์ด๋‹ค.

์ƒํ™˜ ์ž…๋ ฅ ์‹œ๊ฐ„์€ ์™œ O(1)์ด ๋˜๋Š”๊ฐ€?

ํฌ๊ธฐ๊ฐ€ N์ธ ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ, ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆด ๋•Œ ํ•„์š”ํ•œ ์›์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์—ญ์œผ๋กœ ๊ณ„์‚ฐํ•ด๋ณธ๋‹ค.

โ‡’ N๊ฐœ์˜ ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•ด์•ผํ•˜๋Š” ์›์†Œ์˜ ์ด ๊ฐœ์ˆ˜๋Š” N/2 + N/4 + N/8 + โ€ฆ + 2 + 1๋กœ N๋ณด๋‹ค ์ž‘๋‹ค

๋ฐฐ์—ด์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ตœ์•…์˜ ๊ฒฝ์šฐ O(N)์ด ์†Œ์š”๋˜๋Š” ์‚ฝ์ž… ์—ฐ์‚ฐ๋„ ์กด์žฌํ•˜์ง€๋งŒ, ํ‰๊ท ์ ์œผ๋กœ ๊ฐ ์‚ฝ์ž…์€ O(1)์ด๋‹ค.

[ StringBuilder ]

for๋ฌธ์„ ์‚ฌ์šฉํ•œ ๋ฌธ์ž์—ด ๋ถ™์ด๊ธฐ

๋ฌธ์ž์—ด์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ์ด์–ด๋ถ™์ด๋ ค ํ•œ๋‹ค. ์ด๋•Œ์˜ ์ˆ˜ํ–‰์‹œ๊ฐ„์€?

๋ชจ๋“  ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ x๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, ์ด์–ด๋ถ™์ผ ๋•Œ๋งˆ๋‹ค ๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ์ฝ๊ณ  ํ•˜๋‚˜ํ•˜๋‚˜ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์— ๋ณต์‚ฌํ•ด์•ผํ•œ๋‹ค. ์ฒ˜์Œ์—๋Š” x๊ฐœ, ๋‘ ๋ฒˆ์งธ๋Š” 2x๊ฐœ, ์„ธ ๋ฒˆ์งธ๋Š” 3x๊ฐœ, n๋ฒˆ์งธ๋Š” nx๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ๋ณต์‚ฌํ•ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ์ˆ˜ํ–‰์‹œ๊ฐ„์€ O(x + 2x + โ€ฆ + nx), ์ฆ‰ O(xn^2)์ด ๋œ๋‹ค.

\[1+2+...+n = n(n+1) \rightarrow O(n^2)\]

StringBuilder๋ฅผ ์ด์šฉํ•œ ๋ฌธ์ž์—ด ๋ถ™์ด๊ธฐ

StringBuilder๋Š” ๊ฐ€๋ณ€ ํฌ๊ธฐ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋ฌธ์ž์—ด์„ ๋ณต์‚ฌํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

02. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

: ์ฐจ๋ก€๋กœ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋ฅผ ํ‘œํ˜„ํ•ด์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ(๋‹จ๋ฐฉํ–ฅ, ์–‘๋ฐฉํ–ฅ)

  • ํƒ์ƒ‰: O(N)
  • ์‚ฝ์ž…, ์‚ญ์ œ: O(1) (ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์œ ์šฉ)

[ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ ]

  • ๋‹จ๋ฐฉํ–ฅ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

์œ„ ์ฝ”๋“œ์—์„œ LinkedList๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ์ ‘๊ทผํ•  ๋•Œ head ๋…ธ๋“œ์˜ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

โ†’ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋“ค์ด ๋™์‹œ์— ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋„์ค‘์— head๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์–ด๋–ค ๊ฐ์ฒด๋“ค์€ ์ด์ „ head๋ฅผ ๊ณ„์† ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Node ํด๋ž˜์Šค๋ฅผ ํฌํ•จํ•˜๋Š” LinkedList ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด head Node ๋ณ€์ˆ˜๋ฅผ ๋‹จ ํ•˜๋‚˜๋งŒ ์ •์˜ํ•ด ๋†“์Œ์œผ๋กœ์จ ์œ„์˜ ๋ฌธ์ œ์ ์„ ์™„์ „ํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

[ ๋‹จ๋ฐฉํ–ฅ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์—์„œ ๋…ธ๋“œ ์‚ญ์ œ ]

๋…ธ๋“œ n์„ ์‚ญ์ œํ•˜๊ณ ์ž ํ•  ๋•Œ ์ด์ „ ๋…ธ๋“œ prev๋ฅผ ์ฐพ์•„ prev.next๋ฅผ n.next์™€ ๊ฐ™๋„๋ก ์„ค์ •ํ•œ๋‹ค.

์–‘๋ฐฉํ–ฅ์ธ ๊ฒฝ์šฐ์—๋Š” n.next๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋…ธ๋“œ๋ฅผ ๊ฐฑ์‹ ํ•˜์—ฌ n.next.prev๊ฐ€ n.prev์™€ ๊ฐ™๋„๋ก ์„ค์ •ํ•œ๋‹ค.

  • ์ฃผ์˜ํ•  ์ 
    • null ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ๋ฅผ ๋ฐ˜๋“œ์‹œ ํ•ด์•ผํ•œ๋‹ค.
    • ํ•„์š”ํ•œ ๊ฒฝ์šฐ head์™€ tail ํฌ์ธํ„ฐ๋„ ๊ฐฑ์‹ ํ•ด์•ผ ํ•œ๋‹ค.
    • (๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์–ธ์–ด์ผ ๊ฒฝ์šฐ ex. C, C++) ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ œ๋Œ€๋กœ ๋ฐ˜ํ™˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.

[ Runner ๊ธฐ๋ฒ• ]

: ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•  ๋•Œ ๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ (Runner(๋ถ€๊ฐ€ ํฌ์ธํ„ฐ๋ผ๊ณ ๋„ ํ•จ)์€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๋ฌธ์ œ์—์„œ ๋งŽ์ด ํ™œ์šฉ๋˜๋Š” ๊ธฐ๋ฒ•)

์ด๋•Œ ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ํฌ์ธํ„ฐ๋ณด๋‹ค ์•ž์„œ๋„๋ก ํ•œ๋‹ค.

์˜ˆ์‹œ

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ $a_1 \rightarrow a_2 \rightarrow \cdots \rightarrow a_n \rightarrow b_1 \rightarrow b_2 \rightarrow \cdots \rightarrow b_n$ ์ด ์žˆ์„ ๋•Œ ์ด ๋ฆฌ์ŠคํŠธ๋ฅผ $a_1 \rightarrow b_1 \rightarrow a_2 \rightarrow b_2 \rightarrow \cdots \rightarrow a_n \rightarrow b_n$์œผ๋กœ ์žฌ์ •๋ ฌํ•˜๊ณ  ์‹ถ๋‹ค. ์ •ํ™•ํ•œ ๊ธธ์ด๋Š” ๋ชจ๋ฅด์ง€๋งŒ, ๊ธธ์ด๊ฐ€ ์ง์ˆ˜๋ผ๋Š” ์ •๋ณด๋Š” ์•Œ๊ณ  ์žˆ๋‹ค.

์ด๋•Œ ํฌ์ธํ„ฐ p1(์•ž์„  ํฌ์ธํ„ฐ)๋ฅผ ๋‘๊ณ , ๋”ฐ๋ผ์˜ค๋Š” ํฌ์ธํ„ฐ p2๊ฐ€ ํ•œ ๋ฒˆ ์›€์ง์ผ ๋•Œ๋งˆ๋‹ค ํฌ์ธํ„ฐ p1์ด ๋‘ ๋ฒˆ ์›€์ง์ด๋„๋ก ์„ค์ •ํ•ด ๋ณธ๋‹ค.

๊ทธ๋žฌ์„ ๋•Œ p1์ด ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๋์— ๋„๋‹ฌํ•˜๋ฉด p2๋Š” ๊ฐ€์šด๋ฐ ์ง€์ ์— ์žˆ๊ฒŒ ๋œ๋‹ค. ์ด ์ƒํƒœ์—์„œ p1์„ ๋‹ค์‹œ ๋งจ ์•ž์œผ๋กœ ์˜ฎ๊ธด ๋‹ค์Œ p2๋กœ ํ•˜์—ฌ๊ธˆ ์›์†Œ๋ฅผ ์žฌ๋ฐฐ์—ดํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ๋ฃจํ”„๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค p2๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์›์†Œ๋ฅผ p1 ๋’ค๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค.

[ ์žฌ๊ท€ ๋ฌธ์ œ ]

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ์ƒ๋‹น์ˆ˜๋Š” ์žฌ๊ท€ ํ˜ธ์ถœ์— ์˜์กดํ•จ

์žฌ๊ท€ ํ˜ธ์ถœ์˜ ๊นŠ์ด๊ฐ€ n์ด ๋  ๊ฒฝ์šฐ, ํ•ด๋‹น ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ ์–ด๋„ O(n) ๋งŒํผ์˜ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•œ๋‹ค.

์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐ˜๋ณต(iterative) ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋„๋ฆฌ ์ˆ˜ ์žˆ๊ธด ํ•˜์ง€๋งŒ ๋ฐ˜๋ณต์  ํ˜•ํƒœ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ํ•œ์ธต ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

03. ์Šคํƒ๊ณผ ํ

[ ์Šคํƒ ๊ตฌํ˜„ํ•˜๊ธฐ ]

: LIFO(Last-In-First-Out)์— ๋”ฐ๋ผ ์ž๋ฃŒ ๋ฐฐ์—ด

  • ์Šคํƒ์˜ ์—ฐ์‚ฐ
    • pop(): ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ํ•ญ๋ชฉ ์ œ๊ฑฐ
    • push(item): item ํ•˜๋‚˜๋ฅผ ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ— ๋ถ€๋ถ„์— ์ถ”๊ฐ€
    • peek(): ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ํ•ญ๋ชฉ ๋ฐ˜ํ™˜
    • isEmpty(): ์Šคํƒ์ด ๋น„์–ด ์žˆ์„ ๋•Œ true ๋ฐ˜ํ™˜
  • ํŠน์ง•
    • ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์Šคํƒ์€ ์ƒ์ˆ˜ ์‹œ๊ฐ„์— i๋ฒˆ์งธ ํ•ญ๋ชฉ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.
    • ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ์‚ญ์ œ ์—ฐ์‚ฐ์€ ์ƒ์ˆ˜ ์‹œ๊ฐ„์— ๊ฐ€๋Šฅํ•˜๋‹ค. (๋ฐฐ์—ด์ฒ˜๋Ÿผ ์›์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ฐ€์–ด์ค„ ํ•„์š”๊ฐ€ ์—†์Œ)

  • ์Šคํƒ์˜ ์‚ฌ์šฉ
    • ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

      ์žฌ๊ท€์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์Šคํƒ์— ๋„ฃ์–ด์ฃผ๊ณ , ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๋น ์ ธ๋‚˜์™€ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ•  ๋•Œ๋Š” ์Šคํƒ์— ๋„ฃ์–ด ๋‘์—ˆ๋˜ ์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋นผ์ค˜์•ผ ํ•œ๋‹ค. ์Šคํƒ์€ ์ด๋Ÿฐ ํ–‰์œ„๋ฅผ ์ง๊ด€์ ์œผ๋กœ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

[ ํ ๊ตฌํ˜„ํ•˜๊ธฐ ]

: FIFO(First-In-First-Out)์— ๋”ฐ๋ผ ์ž๋ฃŒ ๋ฐฐ์—ด

  • ํ์˜ ์—ฐ์‚ฐ
    • add(item): item์„ ๋ฆฌ์ŠคํŠธ์˜ ๋๋ถ€๋ถ„์— ์ถ”๊ฐ€
    • remove(): ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์„ ์ œ๊ฑฐ
    • peek(): ํ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ํ•ญ๋ชฉ ๋ฐ˜ํ™˜
    • isEmpty(): ํ๊ฐ€ ๋น„์–ด ์žˆ์„ ๋•Œ true ๋ฐ˜ํ™˜

ํ ๋˜ํ•œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ํ์˜ ์‚ฌ์šฉ
    • ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(breadth-first search)

      ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋…ธ๋“œ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๋Š” ์šฉ๋„

      ๋…ธ๋“œ๋ฅผ ์ ‘๊ทผํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ์บ์‹œ ๊ตฌํ˜„

This post is licensed under CC BY 4.0 by the author.