๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹œ๊ฐ„๋ณต์žก๋„์— ๋Œ€ํ•˜์—ฌ

by 5566 2023. 10. 10.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹œ๊ฐ„๋ณต์žก๋„์— ๋Œ€ํ•œ ๊ธ€์˜ ๋ชฉ์ฐจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

1. ์‹œ๊ฐ„๋ณต์žก๋„๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

  • 1.1 ์‹œ๊ฐ„๋ณต์žก๋„์˜ ๊ฐœ๋…
  • 1.2 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ์˜ ๊ด€๊ณ„

2. ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ‘œ๊ธฐ๋ฒ•

  • 2.1 ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ• (Big O Notation)
  • 2.2 ์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ• (Omega Notation)
  • 2.3 ์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ• (Theta Notation)

3. ์‹œ๊ฐ„๋ณต์žก๋„์˜ ๊ณ„์‚ฐ

  • 3.1 ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(1))
  • 3.2 ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(n))
  • 3.3 ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(log n))
  • 3.4 ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(n^2))
  • 3.5 ์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(2^n))

4. ์‹œ๊ฐ„๋ณต์žก๋„์˜ ์ค‘์š”์„ฑ

  • 4.1 ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ๊ณผ ์„ฑ๋Šฅ ๊ฐœ์„ 
  • 4.2 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ์˜ ์ค‘์š”์„ฑ

5. ์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„์˜ ์˜ˆ์‹œ

  • 5.1 ์„ ํ˜• ๊ฒ€์ƒ‰๊ณผ ์ด์ง„ ๊ฒ€์ƒ‰ ๋น„๊ต
  • 5.2 ๋ฒ„๋ธ” ์ •๋ ฌ๊ณผ ํ€ต ์ •๋ ฌ ๋น„๊ต
  • 5.3 ๋™์  ๊ณ„ํš๋ฒ•๊ณผ ๋ถ„ํ•  ์ •๋ณต๋ฒ• ๋น„๊ต

์ด๋Ÿฌํ•œ ๋ชฉ์ฐจ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์— ๋Œ€ํ•œ ๊ธ€์„ ์ž‘์„ฑํ•˜๋ฉด, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹œ๊ฐ„๋ณต์žก๋„์˜ ๊ฐœ๋…, ํ‘œ๊ธฐ๋ฒ•, ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•, ์ค‘์š”์„ฑ ๋ฐ ์˜ˆ์‹œ์™€ ๊ฐ™์€ ์ฃผ์š” ๋‚ด์šฉ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์‹œ๊ฐ„๋ณต์žก๋„๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

1.1 ์‹œ๊ฐ„๋ณต์žก๋„์˜ ๊ฐœ๋…

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

1.2 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ์˜ ๊ด€๊ณ„

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ํ•จ์ˆ˜๋กœ ํ‘œํ˜„๋˜๋Š” ๊ฒƒ์œผ๋กœ, ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

2. ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ‘œ๊ธฐ๋ฒ•

2.1 ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ• (Big O Notation)

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ƒํ•œ์„ (์ตœ์•…์˜ ๊ฒฝ์šฐ)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. O ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์œจ์— ๋Œ€ํ•ด์„œ ์–ผ๋งˆ๋‚˜ ๋Š๋ ค์ง€๋Š”์ง€๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, O(n)์€ ์ž…๋ ฅ ํฌ๊ธฐ n์— ๋Œ€ํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์„ ํ˜•์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

2.2 ์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ• (Omega Notation)

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

2.3 ์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ• (Theta Notation)

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

3. ์‹œ๊ฐ„๋ณต์žก๋„์˜ ๊ณ„์‚ฐ

3.1 ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(1))

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

3.2 ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(n))

์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, n๊ฐœ์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ๋Š” ๊ฒฝ์šฐ, ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๋ฏ€๋กœ O(n)์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

3.3 ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(log n))

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

3.4 ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(n^2))

์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ ์Œ์„ ํ™•์ธํ•˜๋Š” ๊ฒฝ์šฐ O(n^2)์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

3.5 ์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(2^n))

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

4. ์‹œ๊ฐ„๋ณต์žก๋„์˜ ์ค‘์š”์„ฑ

4.1 ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ๊ณผ ์„ฑ๋Šฅ ๊ฐœ์„ 

์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ํ‰๊ฐ€ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„์„ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ณ , ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ปค์ง์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์•ˆ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.2 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ์˜ ์ค‘์š”์„ฑ

์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ๊ฒฝ์šฐ, ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜์—ฌ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

5. ์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„์˜ ์˜ˆ์‹œ

5.1 ์„ ํ˜• ๊ฒ€์ƒ‰๊ณผ ์ด์ง„ ๊ฒ€์ƒ‰ ๋น„๊ต

์„ ํ˜• ๊ฒ€์ƒ‰์€ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด์ง„ ๊ฒ€์ƒ‰์€ ์ž…๋ ฅ ํฌ๊ธฐ์˜ ๋กœ๊ทธ์— ๋น„๋ก€ํ•˜์—ฌ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ O(log n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ด์ง„ ๊ฒ€์ƒ‰์ด ์„ ํ˜• ๊ฒ€์ƒ‰๋ณด๋‹ค ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5.2 ๋ฒ„๋ธ” ์ •๋ ฌ๊ณผ ํ€ต ์ •๋ ฌ ๋น„๊ต

๋ฒ„๋ธ” ์ •๋ ฌ์€ ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜์—ฌ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ O(n^2)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ€ต ์ •๋ ฌ์€ ํ‰๊ท ์ ์œผ๋กœ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ O(n log n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ€ต ์ •๋ ฌ์ด ๋ฒ„๋ธ” ์ •๋ ฌ๋ณด๋‹ค ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5.3 ๋™์  ๊ณ„ํš๋ฒ•๊ณผ ๋ถ„ํ•  ์ •๋ณต๋ฒ• ๋น„๊ต

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

์ด๋ ‡๊ฒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋ถ„์„ํ•จ์œผ๋กœ์จ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ •๋Ÿ‰์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ๊ณผ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์‹œ๊ฐ„๋ณต์žก๋„๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

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

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋‹จ์ˆœํžˆ ์ฆ๊ฐ€ํ•˜๋Š”์ง€, ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š”์ง€, ๋กœ๊ทธ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š”์ง€ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„๋ณต์žก๋„ ๊ฐœ๋…์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ค ์ž…๋ ฅ ํฌ๊ธฐ์˜ ํ•จ์ˆ˜๋กœ ํ‘œํ˜„๋˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋Š” ํŒจํ„ด์„ ๋ถ„์„ํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ํ‰๊ฐ€ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์–ด๋–ค ์กฐ๊ฑด์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฐ€์žฅ ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๊ณ , ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„๋Š” ๋Œ€๊ฐœ Big O ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ์–ด๋–ป๊ฒŒ ์˜์กดํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•˜๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค ์ค‘์—์„œ ์ตœ์ ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์— ๋Œ€ํ•œ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•˜๊ณ , ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ค๊ณ„ ๋ฐ ๋ถ„์„์— ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

์ •๋ฆฌํ•˜์ž๋ฉด, ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•˜๊ณ  ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋…์œผ๋กœ, ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ํ‰๊ฐ€ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์š”ํ•œ ๋„๊ตฌ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

1. ์‹œ๊ฐ„๋ณต์žก๋„์˜ ์ •์˜

์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๊ณ  ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ํ‰๊ฐ€ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์š”ํ•œ ๋„๊ตฌ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์™€ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„๋ณต์žก๋„ ๊ฐœ๋…์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ค ์ž…๋ ฅ ํฌ๊ธฐ์˜ ํ•จ์ˆ˜๋กœ ํ‘œํ˜„๋˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฃผ๋กœ Big O (๋น…์˜ค) ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋ฉฐ, ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•  ๋•Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋ถ„์„ํ•จ์œผ๋กœ์จ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ์‹คํ–‰ ์‹œ๊ฐ„ ์˜ˆ์ธก: ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ด์šฉํ•ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ด๋Š ์ •๋„๊นŒ์ง€ ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต: ์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„์„ ํ†ตํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์˜ ํšจ์œจ์„ฑ์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋” ๋น ๋ฅธ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋Š”์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ์ตœ์ ํ™” ๋ฐฉ์•ˆ ๋„์ถœ: ์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„์„ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ด๋Š ๋ถ€๋ถ„์—์„œ ์„ฑ๋Šฅ์ ์ธ ํ•œ๊ณ„์— ๋„๋‹ฌํ•˜๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ์•ˆ์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

2. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„๊ณผ ๊ด€๋ จ

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž…๋ ฅ์— ๋Œ€ํ•ด ์‹คํ–‰๋  ๋•Œ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋ณ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์„ ๋ถ„์„ํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ์„ฑ๋Šฅ ํ‰๊ฐ€: ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์„ ๋ถ„์„ํ•จ์œผ๋กœ์จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์ด ์–ด๋Š ์ •๋„์ธ์ง€๋ฅผ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•  ๋•Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ์ฆ๊ฐ€ํ•˜๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์‹œ๊ฐ„๋ณต์žก๋„์—๋Š” ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ๋Œ€ํ‘œ์ ์ธ ์‹œ๊ฐ„๋ณต์žก๋„ ํ˜•ํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(1)): ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€๋˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฐ์—ด์—์„œ ํŠน์ • ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(n)): ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฐ์—ด์—์„œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ•œ ๋ฒˆ์”ฉ ํ™•์ธํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(log n)): ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋กœ๊ทธ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(2^n)): ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•˜๊ณ , ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ณ , ์ตœ์ ํ™” ๋ฐฉ์•ˆ์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„๊ณผ ๊ด€๋ จ

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

2.1 ์„ฑ๋Šฅ ํ‰๊ฐ€๋ฅผ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™ ์‹œ๊ฐ„ ๋ถ„์„

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์„ ๋ถ„์„ํ•˜๋Š” ์ด์œ ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•  ๋•Œ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•จ์œผ๋กœ์จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ํ•จ์ˆ˜๋กœ ํ‘œํ˜„๋˜๋Š”๋ฐ, ์ด ํ•จ์ˆ˜๋ฅผ ์‹œ๊ฐ„๋ณต์žก๋„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

2.2 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„

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

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์€ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š”ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„ ํ˜•ํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2.2.1 ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(1))

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

2.2.2 ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(n))

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

2.2.3 ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(log n))

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

2.2.4 ์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(2^n))

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

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•˜๊ณ , ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ณ , ์ตœ์ ํ™” ๋ฐฉ์•ˆ์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ํŒจํ„ด์„ ๋ณด์ด์ง€๋งŒ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ ํ‰๊ฐ€์™€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

2. ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ‘œ๊ธฐ๋ฒ•

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„์„ ๋ถ„์„ํ•˜๊ณ  ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ํ‘œ๊ธฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํ‘œ๊ธฐ๋ฒ•์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ์‹œ๊ฐ„๊ณผ ์ž…๋ ฅ ํฌ๊ธฐ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

2.1 Big O ํ‘œ๊ธฐ๋ฒ•

Big O ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ตœ์•…์˜ ๊ฒฝ์šฐ(์ตœ๋Œ€ ์‹œ๊ฐ„ ์†Œ์š”)๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ƒํ•œ์„ ์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ํ•จ์ˆ˜ f(n)์ด ์žˆ์„ ๋•Œ, Big O ํ‘œ๊ธฐ๋ฒ•์€ O(g(n))์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ g(n)์€ f(n)์˜ ์ƒํ•œ ํ•จ์ˆ˜๋กœ, f(n)์˜ ์ฆ๊ฐ€์œจ์„ ๋Œ€๋žต์ ์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Big O ํ‘œ๊ธฐ๋ฒ•์€ ์ƒํ•œ ํ•จ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ์ฆ๊ฐ€์œจ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์—, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋žต์ ์œผ๋กœ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(1), O(n), O(log n), O(n^2)์ธ ๊ฒฝ์šฐ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

2.2 Omega ํ‘œ๊ธฐ๋ฒ•

Omega ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ตœ์„ ์˜ ๊ฒฝ์šฐ(์ตœ์†Œ ์‹œ๊ฐ„ ์†Œ์š”)๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„์˜ ํ•˜ํ•œ์„ ์„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ํ•จ์ˆ˜ f(n)์ด ์žˆ์„ ๋•Œ, Omega ํ‘œ๊ธฐ๋ฒ•์€ ฮฉ(g(n))์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ g(n)์€ f(n)์˜ ํ•˜ํ•œ ํ•จ์ˆ˜๋กœ, f(n)์˜ ์ฆ๊ฐ€์œจ์„ ๋Œ€๋žต์ ์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Omega ํ‘œ๊ธฐ๋ฒ•์€ ์ตœ์„ ์˜ ๊ฒฝ์šฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ตœ๊ณ ์˜ ๊ฒฝ์šฐ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ฮฉ(1), ฮฉ(n), ฮฉ(log n), ฮฉ(n^2)์ธ ๊ฒฝ์šฐ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

2.3 Theta ํ‘œ๊ธฐ๋ฒ•

Theta ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„์˜ ์ƒํ•œ๊ณผ ํ•˜ํ•œ์ด ๋™์ผํ•œ ๊ฒฝ์šฐ๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ํ•จ์ˆ˜ f(n)์ด ์žˆ์„ ๋•Œ, Theta ํ‘œ๊ธฐ๋ฒ•์€ ฮ˜(g(n))์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ g(n)์€ f(n)์˜ ์ƒํ•œ๊ณผ ํ•˜ํ•œ์œผ๋กœ, f(n)์˜ ์ฆ๊ฐ€์œจ์„ ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Theta ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„์˜ ํ‰๊ท ์ ์ธ ์ฆ๊ฐ€์œจ์„ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ฮ˜(1), ฮ˜(n), ฮ˜(log n), ฮ˜(n^2)์ธ ๊ฒฝ์šฐ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ‘œ๊ธฐํ•˜๊ธฐ ์œ„ํ•ด Big O, Omega, Theta ํ‘œ๊ธฐ๋ฒ•์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ํ‘œํ˜„ํ•˜๊ณ , ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค ๊ฐ„์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜๊ณ  ์ตœ์ ํ™” ๋ฐฉ์•ˆ์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ• (Big O Notation)

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ‘œ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜๊ณ  ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์š”ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ O ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ƒํ•œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ํ•จ์ˆ˜ f(n)์ด ์žˆ์„ ๋•Œ, ์ด ํ•จ์ˆ˜๋ฅผ O(g(n))์ด๋ผ๊ณ  ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ g(n)์€ f(n)์˜ ์ฆ๊ฐ€์œจ์„ ๋Œ€๋žต์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ์ƒํ•œ ํ•จ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ์ฆ๊ฐ€์œจ์„ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋žต์ ์œผ๋กœ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, O(1), O(n), O(log n), O(n^2)์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ํ‘œ๊ธฐ๋ฉ๋‹ˆ๋‹ค.

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์˜ ์˜ˆ์‹œ

  1. O(1) - ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ผ์ •ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฐ์—ด์—์„œ ํŠน์ • ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ์›ํ•˜๋Š” ๊ฐ’์„ O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. O(n) - ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฐ์—ด์—์„œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ•œ ๋ฒˆ์”ฉ ํ™•์ธํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜๋Š” ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

  3. O(log n) - ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋กœ๊ทธ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ์ด ์ •๋ ฌ๋œ ์ƒํƒœ์—์„œ ์ด์ง„ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ์ž…๋ ฅ ํฌ๊ธฐ๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ค„์—ฌ๊ฐ€๋ฉฐ ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

  4. O(n^2) - ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ ์Œ์„ ํ™•์ธํ•˜๋Š” ๊ฒฝ์šฐ ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œ๊ธฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ์˜ˆ์ธกํ•˜๊ณ , ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋น„๊ตํ•˜์—ฌ ์ตœ์ ํ™” ๋ฐฉ์•ˆ์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ• (Omega Notation)

์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„์˜ ํ•˜ํ•œ์„ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ค‘์š”ํ•œ ๋„๊ตฌ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ตœ์„ ์˜ ๊ฒฝ์šฐ(์ตœ์†Œ ์‹œ๊ฐ„ ์†Œ์š”)๋ฅผ ์˜ˆ์ธกํ•˜๊ณ , ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ•์€ ฮฉ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ํ•˜ํ•œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ํ•จ์ˆ˜ f(n)์ด ์žˆ์„ ๋•Œ, ์ด ํ•จ์ˆ˜๋ฅผ ฮฉ(g(n))์ด๋ผ๊ณ  ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ g(n)์€ f(n)์˜ ์ฆ๊ฐ€์œจ์„ ๋Œ€๋žต์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ•์€ ํ•˜ํ•œ ํ•จ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ฆ๊ฐ€์œจ์„ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ตœ์„ ์˜ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋žต์ ์œผ๋กœ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ฮฉ(1), ฮฉ(n), ฮฉ(log n), ฮฉ(n^2)์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ํ‘œ๊ธฐ๋ฉ๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ•์˜ ์˜ˆ์‹œ

  1. ฮฉ(1) - ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ•˜ํ•œ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ผ์ •ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ตœ์„ ์˜ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ค ์ž…๋ ฅ์—๋„ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. O(1)๊ณผ ๋™์ผํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.

  2. ฮฉ(n) - ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ•˜ํ•œ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ตœ์„ ์˜ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. O(n)๊ณผ ์ƒํ•œ ๋ฐ ํ•˜ํ•œ์ด ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

  3. ฮฉ(log n) - ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ•˜ํ•œ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋กœ๊ทธ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ตœ์„ ์˜ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ๋กœ๊ทธ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. O(log n)๊ณผ ์ƒํ•œ ๋ฐ ํ•˜ํ•œ์ด ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

  4. ฮฉ(n^2) - ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ•˜ํ•œ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ตœ์„ ์˜ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์ด์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. O(n^2)๊ณผ ์ƒํ•œ ๋ฐ ํ•˜ํ•œ์ด ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

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

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ• (Theta Notation)

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

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ฮ˜ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ƒํ•œ ๋ฐ ํ•˜ํ•œ์ด ๋™์ผํ•œ ํ•จ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ํ•จ์ˆ˜ f(n)์ด ์žˆ์„ ๋•Œ, ์ด ํ•จ์ˆ˜๋ฅผ ฮ˜(g(n))์ด๋ผ๊ณ  ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ g(n)์€ f(n)์˜ ์ฆ๊ฐ€์œจ์„ ๋Œ€๋žต์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ์ค‘์š”ํ•œ ์ด์œ ๋Š” ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ƒํ•œ๋งŒ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ˜๋ฉด, ์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ํ•˜ํ•œ๋งŒ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ตœ์ ์˜ ๊ฒฝ์šฐ๋ฅผ ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์˜ ์˜ˆ์‹œ

  1. ฮ˜(1) - ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ผ์ •ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ƒํ•œ๊ณผ ํ•˜ํ•œ์ด ๋™์ผํ•˜๋ฏ€๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ค ์ž…๋ ฅ์—๋„ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  2. ฮ˜(n) - ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ตœ์ ์˜ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ์ƒํ•œ๊ณผ ํ•˜ํ•œ์ด ๋™์ผํ•˜๋ฉฐ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  3. ฮ˜(log n) - ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋กœ๊ทธ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ตœ์ ์˜ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ์ƒํ•œ๊ณผ ํ•˜ํ•œ์ด ๋™์ผํ•˜๋ฉฐ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ๋กœ๊ทธ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  4. ฮ˜(n^2) - ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ตœ์ ์˜ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ์ƒํ•œ๊ณผ ํ•˜ํ•œ์ด ๋™์ผํ•˜๋ฉฐ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์ด์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ตœ์ ์˜ ๊ฒฝ์šฐ๋ฅผ ์˜ˆ์ธกํ•˜๊ณ , ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ์ข€ ๋” ์ •ํ™•ํ•˜๊ฒŒ ๋น„๊ตํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ๋ณด๋‹ค ์ •ํ™•ํ•œ ํŒŒ์•…์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ• (Theta Notation)

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

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์˜ ๊ฐœ๋…

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ฮ˜ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„์˜ ์ƒํ•œ๊ณผ ํ•˜ํ•œ์ด ๋™์ผํ•œ ํ•จ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ตœ์ ์˜ ๊ฒฝ์šฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ํ•จ์ˆ˜ f(n)์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, f(n)์„ ฮ˜(g(n))๋กœ ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ g(n)์€ f(n)์˜ ์ฆ๊ฐ€์œจ์„ ๋Œ€๋žต์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ๋ชจ๋“  ์ž…๋ ฅ ํฌ๊ธฐ์— ๋Œ€ํ•ด์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด g(n)์— ๋น„๋ก€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์˜ ์˜ˆ์‹œ

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ตœ๊ณ ์˜ ๊ฒฝ์šฐ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ฮ˜(1) - ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ผ์ •ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ตœ์ ์˜ ๊ฒฝ์šฐ๋กœ, ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•ด๋„ ์‹คํ–‰ ์‹œ๊ฐ„์€ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  2. ฮ˜(n) - ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ตœ์ ์˜ ๊ฒฝ์šฐ๋กœ, ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„๋„ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  3. ฮ˜(log n) - ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋กœ๊ทธ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ตœ์ ์˜ ๊ฒฝ์šฐ๋กœ, ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„๋„ ๋กœ๊ทธ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  4. ฮ˜(n^2) - ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ตœ์ ์˜ ๊ฒฝ์šฐ๋กœ, ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„๋„ ์ด์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์˜ ํ™œ์šฉ

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

3. ์‹œ๊ฐ„๋ณต์žก๋„์˜ ๊ณ„์‚ฐ

์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ณ  ์ตœ์ ์˜ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์— ๋„์›€์„ ์ค๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐ ๋‹จ๊ณ„์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๋ถ„์„ํ•˜๊ณ  ์ด๋ฅผ ์ข…ํ•ฉ์ ์œผ๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„ ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•

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

  1. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐ ๋‹จ๊ณ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๋ฃจํ”„์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜, ์กฐ๊ฑด๋ฌธ์˜ ์‹คํ–‰ ์—ฌ๋ถ€ ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ ๋‹จ๊ณ„์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋„์ถœํ•ฉ๋‹ˆ๋‹ค.

  2. ๊ฐ ๋‹จ๊ณ„์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ•ฉํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ „์ฒด ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์—์„œ๋Š” ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋‹จ๊ณ„์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋‹จ๊ณ„์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  3. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ O(1), O(log n), O(n), O(n^2) ๋“ฑ์œผ๋กœ ํ‘œ๊ธฐ๋ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„ ๊ณ„์‚ฐ ์˜ˆ์‹œ

์‹œ๊ฐ„๋ณต์žก๋„ ๊ณ„์‚ฐ์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ n๊ฐœ์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

  1. ๋ฆฌ์ŠคํŠธ์—์„œ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋Š” ๋‹จ๊ณ„๋Š” n๋ฒˆ ๋ฐ˜๋ณต๋˜๋ฏ€๋กœ O(n)์ž…๋‹ˆ๋‹ค.
  2. ํŠน์ • ๊ฐ’๊ณผ ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋‹จ๊ณ„๋Š” ์ƒ์ˆ˜ ์‹œ๊ฐ„์œผ๋กœ O(1)์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ „์ฒด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n)์ž…๋‹ˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„ ๊ณ„์‚ฐ์˜ ์˜์˜

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

์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(1))

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

์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜ˆ์‹œ

์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ๋ฐฐ์—ด์—์„œ ํŠน์ • ์ธ๋ฑ์Šค์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ: ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด ์ธ๋ฑ์Šค์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰ ์‹œ๊ฐ„์€ ํ•ญ์ƒ ์ผ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(1)์ž…๋‹ˆ๋‹ค.

  2. ๋‹จ์ผ ์—ฐ์‚ฐ ์ˆ˜ํ–‰: ํ•˜๋‚˜์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ž…๋ ฅ ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์œผ๋ฏ€๋กœ ์‹คํ–‰ ์‹œ๊ฐ„์€ ํ•ญ์ƒ ์ผ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋˜ํ•œ O(1)์ž…๋‹ˆ๋‹ค.

์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜์˜

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

์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ™œ์šฉ

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

์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(n))

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

์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜ˆ์‹œ

์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

  2. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ๋Š” ๊ฒฝ์šฐ: ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ๊ฐ ์š”์†Œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ผ์น˜ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์—ญ์‹œ O(n)์ž…๋‹ˆ๋‹ค.

์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜์˜

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

์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ™œ์šฉ

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

๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(log n))

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

๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜ˆ์‹œ

๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์ด์ง„ ํƒ์ƒ‰: ์ž…๋ ฅ์ด ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ฐฐ์—ด์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ง„ ํƒ์ƒ‰์€ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์„ ๋งค๋ฒˆ ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์˜ ๋กœ๊ทธ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(log n)์ž…๋‹ˆ๋‹ค.

  2. ํž™(Heap) ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์‚ฝ์ž…, ์‚ญ์ œ: ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํ•ญ์ƒ ๋น ๋ฅธ ์‹œ๊ฐ„ ์•ˆ์— ์ตœ๋Œ€ ๋˜๋Š” ์ตœ์†Œ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํž™์— ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ์—ฐ์‚ฐ๋„ ํŠธ๋ฆฌ์˜ ๋†’์ด์— ๋”ฐ๋ผ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์˜ ๋กœ๊ทธ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์—ญ์‹œ O(log n)์ž…๋‹ˆ๋‹ค.

๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜์˜

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

๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ™œ์šฉ

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

์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(n^2))

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

์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜ˆ์‹œ

์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๋ฒ„๋ธ” ์ •๋ ฌ์ด๋‚˜ ์‚ฝ์ž… ์ •๋ ฌ๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์€ ์š”์†Œ์˜ ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ์‹คํ–‰๋˜๊ณ , ๋‚ด๋ถ€ ๋ฐ˜๋ณต๋ฌธ์€ ์ฒซ ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์ด ํ•œ ๋ฒˆ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์š”์†Œ์˜ ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ์‹คํ–‰๋˜๋ฏ€๋กœ, ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n^2)์ž…๋‹ˆ๋‹ค.

  2. 2์ฐจ์› ๋ฐฐ์—ด์„ ์ˆœ์ฐจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ: 2์ฐจ์› ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ n * n ์ธ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐœ์˜ ๋ฐ˜๋ณต๋ฌธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฐ˜๋ณต๋ฌธ์ด ๋ฐฐ์—ด์˜ ํ–‰๊ณผ ์—ด์„ ์ˆœ์ฐจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ ํฌ๊ธฐ์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์—ญ์‹œ O(n^2)์ž…๋‹ˆ๋‹ค.

์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜์˜

์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์ž…๋ ฅ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ œ๊ณฑ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž…๋ ฅ์ด ๋งค์šฐ ์ปค์ง€๋ฉด ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜์—ฌ ๋น„ํšจ์œจ์ ์ด๋ผ๊ณ  ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ™œ์šฉ

์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž…๋ ฅ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ, ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” ํšจ์œจ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์ž…๋ ฅ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ •๋ ฌ ์ž‘์—…์—๋Š” ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ํ€ต ์ •๋ ฌ์ด๋‚˜ ๋ณ‘ํ•ฉ ์ •๋ ฌ๊ณผ ๊ฐ™์€ O(n log n) ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(2^n))

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

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜ˆ์‹œ

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์›์†Œ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๋ชจ๋‘ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ: n ๊ฐœ์˜ ์›์†Œ๊ฐ€ ์žˆ๋Š” ์ง‘ํ•ฉ์—์„œ ๋ชจ๋“  ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ ์›์†Œ๊ฐ€ ํฌํ•จ๋˜๊ฑฐ๋‚˜ ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜๋Š” 2^n ๊ฐœ๊ฐ€ ๋˜๊ณ , ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์€ ๊ฐ ๋ถ€๋ถ„์ง‘ํ•ฉ์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ์”ฉ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ์˜ ํฌ๊ธฐ์ธ 2^n ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(2^n)์ž…๋‹ˆ๋‹ค.

  2. ์™„์ „ ํƒ์ƒ‰ (Brute force): ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์‹œ๋„ํ•˜์—ฌ ์ •๋‹ต์„ ์ฐพ๋Š” ์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ๋ฅผ ์‹œ๋„ํ•˜๋Š” ๋ฐ ๋“œ๋Š” ์—ฐ์‚ฐ์ด ์ƒ์ˆ˜ ์‹œ๊ฐ„์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋”๋ผ๋„, ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ์‹œ๋„ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์‹คํ–‰ ์‹œ๊ฐ„์€ 2^n ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์—ญ์‹œ O(2^n)์ž…๋‹ˆ๋‹ค.

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜์˜

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์ž…๋ ฅ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž…๋ ฅ์ด ๋งค์šฐ ์ปค์ง€๋ฉด ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜์—ฌ ๋งค์šฐ ํšจ์œจ์ ์ด์ง€ ์•Š๋‹ค๊ณ  ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ™œ์šฉ

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

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ (O(2^n))

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

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜๋ฏธ

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž…๋ ฅ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ํฐ ์ž…๋ ฅ์— ๋Œ€ํ•ด์„œ๋Š” ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋ฉฐ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜ˆ์‹œ

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ์›์†Œ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ ์ƒ์„ฑ

n ๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ฐ–๋Š” ์ง‘ํ•ฉ์—์„œ ๋ชจ๋“  ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ ์›์†Œ๋Š” ์„ ํƒ๋˜๊ฑฐ๋‚˜ ์„ ํƒ๋˜์ง€ ์•Š๋Š” ๋‘ ๊ฐ€์ง€์˜ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜๋Š” 2^n ๊ฐœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋“  ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋งค์šฐ ๋งŽ์€ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•˜๋ฉฐ, ์‹คํ–‰ ์‹œ๊ฐ„์€ ์ž…๋ ฅ์˜ ํฌ๊ธฐ์ธ 2^n ์— ๋น„๋ก€ํ•˜์—ฌ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

2. ์™„์ „ ํƒ์ƒ‰

์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์‹œ๋„ํ•˜์—ฌ ์ •๋‹ต์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜์— ๋Œ€ํ•ด ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„์ด 2^n ์— ๋น„๋ก€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ž…๋ ฅ์ด ํฐ ๊ฒฝ์šฐ์—๋Š” ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋งค์šฐ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ™œ์šฉ

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

4. ์‹œ๊ฐ„๋ณต์žก๋„์˜ ์ค‘์š”์„ฑ

์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•˜๊ฑฐ๋‚˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋•Œ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ ๋ คํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํšจ์œจ์„ฑ๊ณผ ์‹คํ–‰ ์‹œ๊ฐ„

์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ด€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์‹œ๊ฐ„์ด ์งง์„์ˆ˜๋ก ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๊ณ , ๋ฐ˜๋Œ€๋กœ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ์ˆ˜๋ก ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋งŽ์•„์ง‘๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋Š” ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜๋ฉด ๋ถˆํ•„์š”ํ•œ ์‹œ๊ฐ„๊ณผ ์ž์›์˜ ๋‚ญ๋น„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋น ๋ฅธ ์‹คํ–‰ ์‹œ๊ฐ„์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ์— ํฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฒฝ์šฐ, ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๊ณ  ์‹ฌ์ง€์–ด ์‹คํ–‰์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Š” ํ˜„๋Œ€์˜ ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์‹œ์Šคํ…œ์—์„œ ํ•„์ˆ˜์ ์ธ ์š”์†Œ์ด๋ฏ€๋กœ, ์‹œ๊ฐ„๋ณต์žก๋„์— ๋Œ€ํ•œ ๊ณ ๋ ค๊ฐ€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

์Šค์ผ€์ผ๋ง ๊ฐ€๋Šฅ์„ฑ

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

์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜๊ณ  ์„ค๊ณ„ํ•จ์œผ๋กœ์จ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ์Šค์ผ€์ผ๋ง ๊ฐ€๋Šฅ์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ๊ณผ ์„ฑ๋Šฅ ๊ฐœ์„ 

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์€ ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ์ž์› ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ฐœ๋…๋“ค์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Big O ํ‘œ๊ธฐ๋ฒ•

Big O ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด๋‚˜ ์ž์› ์‚ฌ์šฉ๋Ÿ‰์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹ ์ค‘ ๊ฐ€์žฅ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ Big O ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด, ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ์ง๊ด€์ ์œผ๋กœ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Big O ํ‘œ๊ธฐ๋ฒ•์—์„œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋Œ€ํ•œ ์ƒํ•œ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, O(n)์€ ์ž…๋ ฅ ํฌ๊ธฐ n์— ๋น„๋ก€ํ•˜์—ฌ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. O(n^2)๋Š” ์ž…๋ ฅ ํฌ๊ธฐ n์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜์—ฌ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Big O ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜๊ฑฐ๋‚˜ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ค‘์š”ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

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

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์„ ํƒ

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

๊ณ„์‚ฐ ๋ณต์žก๋„ ์ตœ์ ํ™” ๊ธฐ๋ฒ•

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๊ณ„์‚ฐ ๋ณต์žก๋„ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”๋ชจ์ด์ œ์ด์…˜(Memoization) ๊ธฐ๋ฒ•์€ ์ค‘๋ณต๋˜๋Š” ๊ณ„์‚ฐ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Dynamic Programming) ๊ธฐ๋ฒ•์€ ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ํ•ด๊ฒฐํ•˜์—ฌ ์ค‘๋ณต ๊ณ„์‚ฐ์„ ํ”ผํ•˜๊ณ  ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” Big O ํ‘œ๊ธฐ๋ฒ•์„ ์ดํ•ดํ•˜๊ณ , ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„์™€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์„ ํƒ, ๊ณ„์‚ฐ ๋ณต์žก๋„ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋…ธ๋ ฅ๋“ค์„ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ณ , ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ์ž์› ์‚ฌ์šฉ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ์˜ ์ค‘์š”์„ฑ

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

์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ์ž์› ์‚ฌ์šฉ๋Ÿ‰

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

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

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

์Šค์ผ€์ผ๋ง ๊ฐ€๋Šฅ์„ฑ

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

๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ

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

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

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ์˜ ์ค‘์š”์„ฑ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋ฌธ์ œ ํ•ด๊ฒฐ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์€ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด ์ƒ์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ์ž์› ์‚ฌ์šฉ๋Ÿ‰

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

2. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

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

3. ์Šค์ผ€์ผ๋ง ๊ฐ€๋Šฅ์„ฑ

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

4. ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ

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

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

5. ์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„์˜ ์˜ˆ์‹œ

์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•˜๊ณ  ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ณผ์ •์—์„œ ์šฐ๋ฆฌ๋Š” ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” ์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„์„ ์œ„ํ•œ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ์˜ˆ์‹œ: ์„ ํ˜• ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์„ ํ˜• ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ๋ฐฐ์—ด์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ฐจ๋ก€๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉฐ ๊ฐ’์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋ถ„์„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

def linear_search(arr, target):
    for num in arr:
        if num == target:
            return True
    return False

์œ„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋ฐ˜๋ณต๋ฌธ์€ ๋ฐฐ์—ด์˜ ๊ธธ์ด์— ๋น„๋ก€ํ•˜์—ฌ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ N์ผ ๊ฒฝ์šฐ, ๋ฐ˜๋ณต๋ฌธ์€ N๋ฒˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„ ํ˜• ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N)์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ž…๋ ฅ ํฌ๊ธฐ(N)์— ์ •๋น„๋ก€ํ•˜์—ฌ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

2. ์˜ˆ์‹œ: ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ์ค‘๊ฐ„๊ฐ’์„ ์„ ํƒํ•˜์—ฌ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„๊ฐ’๊ณผ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ์ค‘๊ฐ„๊ฐ’๋ณด๋‹ค ์ž‘์€์ง€ ํฐ์ง€์— ๋”ฐ๋ผ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์—ฌ๊ฐ€๋ฉฐ ๊ฐ’์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋ถ„์„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

def binary_search(arr, target):
    low = 0
    high = len(arr) - 1

    while low <= high:
        mid = (low + high) // 2
        guess = arr[mid]

        if guess == target:
            return True
        elif guess < target:
            low = mid + 1
        else:
            high = mid - 1

    return False

์œ„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋ฐ˜๋ณต๋ฌธ์€ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ N์ผ ๊ฒฝ์šฐ, ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฐ˜๋ณต๋ฌธ์„ logN๋ฒˆ ์‹คํ–‰ํ•˜๋ฏ€๋กœ, ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(logN)์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ž…๋ ฅ ํฌ๊ธฐ(N)์— ๋Œ€ํ•˜์—ฌ ๋กœ๊ทธ์˜ ๋น„๋ก€๋กœ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•˜๊ณ  ๋น„๊ตํ•˜๋Š” ๋ฐ์— ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ณ , ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์ตœ์ ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ์„ ํ˜• ๊ฒ€์ƒ‰๊ณผ ์ด์ง„ ๊ฒ€์ƒ‰ ๋น„๊ต

์„ ํ˜• ๊ฒ€์ƒ‰๊ณผ ์ด์ง„ ๊ฒ€์ƒ‰์€ ๋‘ ๊ฐ€์ง€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ฐฐ์—ด์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค๋ฅธ ์‹œ๊ฐ„๋ณต์žก๋„์™€ ์‹คํ–‰ ๋ฐฉ์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” ์„ ํ˜• ๊ฒ€์ƒ‰๊ณผ ์ด์ง„ ๊ฒ€์ƒ‰์„ ๋น„๊ตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์„ ํ˜• ๊ฒ€์ƒ‰

์„ ํ˜• ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฐฐ์—ด์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ฐจ๋ก€๋กœ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ฐพ๋Š” ๊ฐ’์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์—ด์ด ์ •๋ ฌ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์„ ํ˜• ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

def linear_search(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i
    return -1

์„ ํ˜• ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฐฐ์—ด์˜ ๊ธธ์ด์— ๋น„๋ก€ํ•˜์—ฌ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N)์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฐฐ์—ด์˜ ๋๊นŒ์ง€ ๊ฐ’์„ ์ฐพ์ง€ ๋ชปํ•˜๊ณ  ๋ชจ๋“  ์š”์†Œ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์ตœ์•…์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N)์ž…๋‹ˆ๋‹ค.

์ด์ง„ ๊ฒ€์ƒ‰

์ด์ง„ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด์ง„ ๊ฒ€์ƒ‰์€ ๋ฐฐ์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์ด๋ฉด์„œ ๊ฐ’์„ ์ฐพ์•„๊ฐ‘๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์ด์ง„ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

def binary_search(arr, target):
    low = 0
    high = len(arr) - 1

    while low <= high:
        mid = (low + high) // 2
        guess = arr[mid]

        if guess == target:
            return mid
        elif guess < target:
            low = mid + 1
        else:
            high = mid - 1

    return -1

์ด์ง„ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋ฐฐ์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ€๋ฉฐ ๊ฐ’์„ ์ฐพ์•„๊ฐ‘๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ๋ฐ˜๋ณต๋ฌธ์„ logN๋ฒˆ ์‹คํ–‰ํ•˜๋ฏ€๋กœ, ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(logN)์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ž…๋ ฅ ํฌ๊ธฐ(N)์— ๋Œ€ํ•˜์—ฌ ๋กœ๊ทธ์˜ ๋น„๋ก€๋กœ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

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

- ๋ฒ„๋ธ” ์ •๋ ฌ๊ณผ ํ€ต ์ •๋ ฌ ๋น„๊ต

๋ฒ„๋ธ” ์ •๋ ฌ๊ณผ ํ€ต ์ •๋ ฌ์€ ๋‘ ๊ฐ€์ง€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค๋ฅธ ์‹œ๊ฐ„๋ณต์žก๋„์™€ ์‹คํ–‰ ๋ฐฉ์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” ๋ฒ„๋ธ” ์ •๋ ฌ๊ณผ ํ€ต ์ •๋ ฌ์„ ๋น„๊ตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฒ„๋ธ” ์ •๋ ฌ

๋ฒ„๋ธ” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ธ์ ‘ํ•œ ๋‘ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ๊ฐ’์„ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋ฐฐ์—ด์˜ ๋์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์ด๋™์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ฃผ์š”ํ•œ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๋ฒ„๋ธ” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

def bubble_sort(arr):
    n = len(arr)

    for i in range(n):
        for j in range(n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]

๋ฒ„๋ธ” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฐฐ์—ด์˜ ๊ธธ์ด์— ๋น„๋ก€ํ•˜์—ฌ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N^2)์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ œ๊ณฑ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋„ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ N์ผ ๋•Œ N๋ฒˆ์˜ ํŒจ์Šค๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ, ์ตœ์•…์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ์—ญ์‹œ O(N^2)์ž…๋‹ˆ๋‹ค.

ํ€ต ์ •๋ ฌ

ํ€ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ถ„ํ•  ์ •๋ณต(Divide and Conquer) ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์„ ๋ถ„ํ• ํ•˜์—ฌ ๊ธฐ์ค€๊ฐ’(pivot)์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์€ ๊ฐ’์€ ์™ผ์ชฝ์œผ๋กœ, ํฐ ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด์— ๋Œ€ํ•ด ์žฌ๊ท€์ ์œผ๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ํ€ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

def quick_sort(arr):
    if len(arr) <= 1:
        return arr

    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    mid = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]

    return quick_sort(left) + mid + quick_sort(right)

ํ€ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ถ„ํ•  ๋‹จ๊ณ„์—์„œ ๋ฐฐ์—ด์„ ๋ถ„ํ• ํ•˜๊ณ , ์ •๋ณต ๋‹จ๊ณ„์—์„œ ์žฌ๊ท€์ ์œผ๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๊ธธ์ด์— ๋น„๋ก€ํ•˜์—ฌ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, ํ‰๊ท ์ ์ธ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N logN)์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์— ๋Œ€ํ•˜์—ฌ ๋กœ๊ทธ์˜ ๋น„๋ก€๋กœ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋„ ๋ฐฐ์—ด์ด ์ด๋ฏธ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ถ„ํ• ์ด ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•„ O(N^2)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ ํ‰๊ท  ์‹œ๊ฐ„๋ณต์žก๋„์ธ O(N logN)๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

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

- ๋™์  ๊ณ„ํš๋ฒ•๊ณผ ๋ถ„ํ•  ์ •๋ณต๋ฒ• ๋น„๊ต

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

๋™์  ๊ณ„ํš๋ฒ•

๋™์  ๊ณ„ํš๋ฒ•์€ ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ํ•ด๊ฒฐํ•œ๋‹ค๋Š” ์›๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ค‘๋ณต๋˜๋Š” ํ•˜์œ„ ๋ฌธ์ œ๋“ค์ด ๋งŽ์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๋™์  ๊ณ„ํš๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

def fibonacci(n):
    if n <= 1:
        return n

    dp = [0] * (n + 1)
    dp[1] = 1

    for i in range(2, n + 1):
        dp[i] = dp[i - 1] + dp[i - 2]

    return dp[n]

๋™์  ๊ณ„ํš๋ฒ•์€ ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋™์ผํ•œ ํ•˜์œ„ ๋ฌธ์ œ๊ฐ€ ๋ฐ˜๋ณตํ•ด์„œ ๊ณ„์‚ฐ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ํšจ์œจ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜์™€ ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‹œ๊ฐ„์— ๋น„๋ก€ํ•˜๋ฏ€๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๋ถ„ํ•  ์ •๋ณต๋ฒ•

๋ถ„ํ•  ์ •๋ณต๋ฒ•์€ ๋ฌธ์ œ๋ฅผ ๋‚˜๋ˆ„์–ด ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•œ ๋’ค ๊ฐ๊ฐ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์ด๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์žฌ๊ท€์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๋ถ„ํ•  ์ •๋ณต๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

def merge_sort(arr):
    if len(arr) <= 1:
        return arr

    mid = len(arr) // 2
    left = merge_sort(arr[:mid])
    right = merge_sort(arr[mid:])

    return merge(left, right)

def merge(left, right):
    result = []
    i, j = 0, 0

    while i < len(left) and j < len(right):
        if left[i] < right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1

    result.extend(left[i:])
    result.extend(right[j:])
    return result

๋ถ„ํ•  ์ •๋ณต๋ฒ•์€ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•œ ๋’ค, ๊ฐ๊ฐ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์ด๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์—, ์žฌ๊ท€ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๋ฐ˜๋ณต๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜๋Š” ๋กœ๊ทธ์˜ ๋น„๋ก€๋กœ ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N logN)์ž…๋‹ˆ๋‹ค.

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

- ๋™์  ๊ณ„ํš๋ฒ•๊ณผ ๋ถ„ํ•  ์ •๋ณต๋ฒ• ๋น„๊ต

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

๋™์  ๊ณ„ํš๋ฒ•

๋™์  ๊ณ„ํš๋ฒ•์€ ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ํ•ด๊ฒฐํ•œ๋‹ค๋Š” ์›๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ค‘๋ณต๋˜๋Š” ํ•˜์œ„ ๋ฌธ์ œ๋“ค์ด ๋งŽ์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋™์  ๊ณ„ํš๋ฒ•์€ ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋™์  ๊ณ„ํš๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๊ณ„์‚ฐํ•˜๋Š” ๋™์  ๊ณ„ํš๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

def fibonacci(n):
    if n <= 1:
        return n

    dp = [0] * (n + 1)
    dp[1] = 1

    for i in range(2, n + 1):
        dp[i] = dp[i - 1] + dp[i - 2]

    return dp[n]

์œ„์˜ ์ฝ”๋“œ์—์„œ dp ๋ฆฌ์ŠคํŠธ๋Š” ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋™์  ๊ณ„ํš๋ฒ•์€ ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋™์ผํ•œ ํ•˜์œ„ ๋ฌธ์ œ๊ฐ€ ๋ฐ˜๋ณตํ•ด์„œ ๊ณ„์‚ฐ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ํšจ์œจ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜์™€ ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‹œ๊ฐ„์— ๋น„๋ก€ํ•˜๋ฏ€๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๋ถ„ํ•  ์ •๋ณต๋ฒ•

๋ถ„ํ•  ์ •๋ณต๋ฒ•์€ ๋ฌธ์ œ๋ฅผ ๋‚˜๋ˆ„์–ด ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•œ ๋’ค ๊ฐ๊ฐ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์ด๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์žฌ๊ท€์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋ถ„ํ•  ์ •๋ณต๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋ณ‘ํ•ฉ ์ •๋ ฌ(merge sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๋ถ„ํ•  ์ •๋ณต๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

def merge_sort(arr):
    if len(arr) <= 1:
        return arr

    mid = len(arr) // 2
    left = merge_sort(arr[:mid])
    right = merge_sort(arr[mid:])

    return merge(left, right)

def merge(left, right):
    result = []
    i, j = 0, 0

    while i < len(left) and j < len(right):
        if left[i] < right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1

    result.extend(left[i:])
    result.extend(right[j:])
    return result

์œ„์˜ ์ฝ”๋“œ์—์„œ merge_sort ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆˆ ๋’ค, ๊ฐ๊ฐ์„ ์žฌ๊ท€์ ์œผ๋กœ ์ •๋ ฌํ•œ ํ›„ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค. merge ํ•จ์ˆ˜๋Š” ๋‘ ๊ฐœ์˜ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ํ•˜๋‚˜๋กœ ๋ณ‘ํ•ฉํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„ํ•  ์ •๋ณต๋ฒ•์€ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ ์ข‹์€ ์„ฑ๋Šฅ์„ ๊ฐ€์ง€์ง€๋งŒ, ์ค‘๋ณต๋˜๋Š” ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์  ๊ณ„ํš๋ฒ•๋ณด๋‹ค ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•˜๋ฏ€๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ O(N logN)์ž…๋‹ˆ๋‹ค.

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

- ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹œ๊ฐ„๋ณต์žก๋„์— ๋Œ€ํ•œ ๊ธ€ ์ž‘์„ฑํ•˜๊ธฐ

๋™์  ๊ณ„ํš๋ฒ•

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

  1. ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ๋ถ€ํ„ฐ ํฐ ๋ฌธ์ œ๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  4. ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด์— ์ €์žฅํ•˜๊ณ  ํ™œ์šฉํ•˜์—ฌ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋™์  ๊ณ„ํš๋ฒ•์€ ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜์™€ ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‹œ๊ฐ„์— ๋น„๋ก€ํ•˜๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘๋ณต๋˜๋Š” ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ๊ณ  ์žฌ๊ท€์ ์ธ ํ˜ธ์ถœ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ„ํ•  ์ •๋ณต๋ฒ•

๋ถ„ํ•  ์ •๋ณต๋ฒ•์€ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•œ ๋’ค ๊ฐ๊ฐ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์ด๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ถ„ํ•  ์ •๋ณต๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„ ๋ฌธ์ œ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

๋ถ„ํ•  ์ •๋ณต๋ฒ•์€ ์žฌ๊ท€์ ์ธ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ•˜์œ„ ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋กœ๊ทธ์˜ ๋น„๋ก€๋กœ ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ O(N logN)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ๋ถ„ํ• ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์—์„œ ์ถ”๊ฐ€์ ์ธ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋” ํฐ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์  ๊ณ„ํš๋ฒ•๊ณผ ๋ถ„ํ•  ์ •๋ณต๋ฒ•์€ ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์ด ์žˆ์œผ๋ฉฐ, ํ’€๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ œ์˜ ํŠน์„ฑ๊ณผ ์ž…๋ ฅ์˜ ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ  ์ œ์•ฝ ์กฐ๊ฑด์„ ๊ณ ๋ คํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋™์  ๊ณ„ํš๋ฒ•์€ ์ค‘๋ณต๋˜๋Š” ํ•˜์œ„ ๋ฌธ์ œ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋ฉฐ, ๋ถ„ํ•  ์ •๋ณต๋ฒ•์€ ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ๋ถ„ํ• ํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ ์ ˆํ•œ์ง€๋ฅผ ํŒ๋‹จํ•˜์—ฌ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€