CodeGym /์ž๋ฐ” ์ฝ”์Šค /Python SELF KO /๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๋ณต์žก๋„ ๋ถ„์„

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๋ณต์žก๋„ ๋ถ„์„

Python SELF KO
๋ ˆ๋ฒจ 62 , ๋ ˆ์Šจ 3
์‚ฌ์šฉ ๊ฐ€๋Šฅ

9.1 ๋ฐฐ์—ด, ๋ฆฌ์ŠคํŠธ, ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ๋ณต์žก๋„.

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๋ณต์žก๋„ ๋ถ„์„์€ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ(์˜ˆ: ์‚ฝ์ž…, ์‚ญ์ œ, ํƒ์ƒ‰)์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ๋ณต์žก์„ฑ์„ ์ดํ•ดํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ํŠน์ • ์ž‘์—…์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์„ ํƒํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ๋ฐฐ์—ด (Arrays):

  • ์ธ๋ฑ์Šค ์ ‘๊ทผ: O(1)
  • ์š”์†Œ ํƒ์ƒ‰: O(n)
  • ์š”์†Œ ์‚ฝ์ž…: O(n) (์ตœ์•…์˜ ๊ฒฝ์šฐ, ๋ฐฐ์—ด ์ค‘๊ฐ„์— ์‚ฝ์ž…)
  • ์š”์†Œ ์‚ญ์ œ: O(n) (์ตœ์•…์˜ ๊ฒฝ์šฐ, ๋ฐฐ์—ด ์ค‘๊ฐ„์—์„œ ์‚ญ์ œ)
  • ๋ฉ”๋ชจ๋ฆฌ: O(n)

์‚ฌ์šฉ ์˜ˆ์‹œ: ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค๋กœ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค, ์˜ˆ๋ฅผ ๋“ค์–ด ํ…Œ์ด๋ธ”์ด๋‚˜ ์‹œ๊ฐ„๋Œ€๋ณ„ ๋ฐ์ดํ„ฐ์— ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

2. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (Linked Lists):

  • ์ธ๋ฑ์Šค ์ ‘๊ทผ: O(n)
  • ์š”์†Œ ํƒ์ƒ‰: O(n)
  • ์š”์†Œ ์‚ฝ์ž…: O(1) (์œ„์น˜๊ฐ€ ์•Œ๋ ค์ง„ ๊ฒฝ์šฐ)
  • ์š”์†Œ ์‚ญ์ œ: O(1) (์œ„์น˜๊ฐ€ ์•Œ๋ ค์ง„ ๊ฒฝ์šฐ)
  • ๋ฉ”๋ชจ๋ฆฌ: O(n)

์‚ฌ์šฉ ์˜ˆ์‹œ: ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ์š”์†Œ๋ฅผ ์ž์ฃผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•ด์•ผ ํ•  ๋•Œ ์œ ์šฉํ•˜๋ฉฐ, ํ๋‚˜ ์Šคํƒ ๊ตฌํ˜„์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

3. ํ•ด์‹œ ํ…Œ์ด๋ธ” (Hash Tables):

  • ์š”์†Œ ํƒ์ƒ‰: O(1) (ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ)
  • ์š”์†Œ ์‚ฝ์ž…: O(1) (ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ)
  • ์š”์†Œ ์‚ญ์ œ: O(1) (ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ)
  • ๋ฉ”๋ชจ๋ฆฌ: O(n)

์‚ฌ์šฉ ์˜ˆ์‹œ: ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ dictionaries๋‚˜ ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

9.2 ํŠธ๋ฆฌ์™€ ๊ทธ๋ž˜ํ”„์˜ ๋ณต์žก๋„.

1. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ (Binary Search Trees, BST):

  • ์š”์†Œ ํƒ์ƒ‰: O(log n) (ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ)
  • ์š”์†Œ ์‚ฝ์ž…: O(log n) (ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ)
  • ์š”์†Œ ์‚ญ์ œ: O(log n) (ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ)
  • ๋ฉ”๋ชจ๋ฆฌ: O(n)

์‚ฌ์šฉ ์˜ˆ์‹œ: ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ง‘ํ•ฉ(set), ๋งต(map)๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

2. ๊ทธ๋ž˜ํ”„ (Graphs):

  • BFS (๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰): O(V + E)
  • DFS (๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰): O(V + E)
  • ์ตœ๋‹จ ๊ฒฝ๋กœ (Dijkstra): O(V^2) ๋˜๋Š” O(E + V log V) (์ธ์ ‘ ๋ฆฌ์ŠคํŠธ์ผ ๊ฒฝ์šฐ)
  • ๋ฉ”๋ชจ๋ฆฌ: O(V + E)

์‚ฌ์šฉ ์˜ˆ์‹œ: ๊ทธ๋ž˜ํ”„๋Š” ๋„คํŠธ์›Œํฌ ๋ผ์šฐํŒ…, ์†Œ์…œ ๋„คํŠธ์›Œํฌ, ์—ฐ๊ฒฐ ๋ถ„์„ ๋ฐ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

9.3 ์ ํ•ฉํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์„ ํƒํ•˜๊ธฐ

๋ณต์žก๋„ ๋ถ„์„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์„ ํƒํ• ๊นŒ์š”?

๋ฌธ์ œ์˜ ํŠน์„ฑ:

์–ด๋–ค ์—ฐ์‚ฐ์ด ๊ฐ€์žฅ ๋นˆ๋ฒˆํ•˜๊ณ  ์ค‘์š”ํ•œ์ง€ (ํƒ์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ) ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํฌ๊ธฐ:

๋ฐ์ดํ„ฐ ํฌ๊ธฐ์™€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ์ž‘์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋Š” ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ:

ํŠน์ • ์ž‘์—…์— ๋” ์ค‘์š”ํ•œ ๊ฒƒ์ด ์‹คํ–‰ ์‹œ๊ฐ„์ธ์ง€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„์ธ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ:

๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ œํ•œ๋œ ๊ฒฝ์šฐ, ๊ณต๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋‚ฎ์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋ฐ ๊ณต๊ฐ„ ๋ณต์žก์„ฑ์„ ๊ณ ๋ คํ•œ ์‹ค์ œ ๋ฌธ์ œ ์ตœ์ ํ™” ์˜ˆ์‹œ

์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์‚ฌ์šฉ:

์˜ˆ์‹œ: ๋นˆ๋ฒˆํ•œ ๊ฒ€์ƒ‰ ์ž‘์—…์—๋Š” ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๊ณ , ๋นˆ๋ฒˆํ•œ ์‚ฝ์ž…/์‚ญ์ œ ์ž‘์—…์—๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—… ์ˆ˜ ์ค„์ด๊ธฐ:

์˜ˆ์‹œ: ๋ฃจํ”„ ์ตœ์ ํ™” ๋ฐ ๋ถˆํ•„์š”ํ•œ ๊ณ„์‚ฐ์˜ ๋ฐฐ์ œ, ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ๋ฐ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‚ฌ์šฉ.

๋ณ‘๋ ฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ:

์˜ˆ์‹œ: ํฐ ๋ฐ์ดํ„ฐ ์–‘์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๋˜๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ์‚ฌ์šฉ.

9.4 ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ถ„์„์„ ์œ„ํ•œ ์ค€๋น„๋œ ๊ณผ์ œ ์˜ˆ์‹œ.

์‹ค์ œ ๋ฌธ์ œ์˜ ๋ถ„์„ ๋ฐ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์‹ค์Šต ๊ณผ์ œ

๊ณผ์ œ 1: ๋ฐฐ์—ด ๋‚ด ๊ฒ€์ƒ‰ ์ตœ์ ํ™”

์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ๋Š” 1000๋งŒ ๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ตœ์ ํ™”ํ•˜์„ธ์š”.

ํ•ด๊ฒฐ์•ˆ:

์ •๋ ฌ๋œ ๋ฐฐ์—ด์— ๋Œ€ํ•ด ์ด์ง„ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

๊ณผ์ œ 2: ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์ž‘์—… ์ตœ์ ํ™”

์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์š”์†Œ๋ฅผ ์ž์ฃผ ์‚ฝ์ž…ํ•˜๊ณ  ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์•ˆ:

์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ๋ฅผ ์ตœ์ ํ™”ํ•˜์„ธ์š”.

๊ณผ์ œ 3: ํ•ด์‹œ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์‚ฌ์ „์„ ๊ตฌํ˜„ํ•˜์„ธ์š”.

ํ•ด๊ฒฐ์•ˆ:

O(1) ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ์‚ฝ์ž…, ์‚ญ์ œ ๋ฐ ๊ฒ€์ƒ‰ ์ž‘์—…์„ ์œ„ํ•ด ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

๊ณผ์ œ 4: ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ

๋„์‹œ ๋„๋กœ์˜ ๊ทธ๋ž˜ํ”„์—์„œ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์œผ์„ธ์š”.

ํ•ด๊ฒฐ์•ˆ:

์ธ์ ‘ ํ–‰๋ ฌ์—์„œ๋Š” O(V^2) ๋ณต์žก๋„๋กœ, ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ์—์„œ๋Š” O(E + V log V) ๋ณต์žก๋„๋กœ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION