๐Ÿšง

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

purpplee 2021. 11. 21. 01:53

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

๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ• ์ง€์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๋‹จ๊ณ„๋ฅผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ์–ด๋–ค ๋ฌธ์ œ์— ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ฐ๋ƒ์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์ง„๋‹ค.

 

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์—์„œ ์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„ ์—†์ด ์ €์žฅํ•˜๋ฉด ํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋น„ํšจ์œจ์ ์œผ๋กœ ์“ฐ๊ฒŒ ๋œ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ• ์ง€์˜ ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค.

 

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

 

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

์ฐธ๊ณ ) ๋ฉ”๋ชจ๋ฆฌ๋ž€?

ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” RAM ์ด๋ผ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ๋‹ค. RAM(Random Access Memory) ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๋žœ๋คํ•˜๊ฒŒ ์—‘์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋‹ค. ๋žœ๋ค ์•ก์„ธ์Šค๋ž€ ์–ด๋””๋“  ๋ฐ”๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. RAM์˜ ๋ชจ์–‘์€ ๋ณดํ†ต ์—ฌ๋Ÿฌ ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋Š” ์ƒ์ž๋กœ ๊ทธ๋ ค์ง„๋‹ค. ์นธ๋งˆ๋‹ค ์ฃผ์†Œ๊ฐ€ ์žˆ๊ณ  ์ฃผ์†Œ๋งŒ ์•ˆ๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ ์นธ๋ถ€ํ„ฐ ํ•˜๋‚˜ํ•˜๋‚˜ ์ฐพ์•„๊ฐˆ ํ•„์š” ์—†์ด ๊ทธ ์นธ์— ๋ฐ”๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ ์ธก์ •๋ฒ•

์ปดํ“จํ„ฐ๋Š” ๋งค์šฐ ๋น ๋ฅธ ์†๋„๋กœ ์—ฐ์‚ฐํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋งํ•  ๋•Œ '๋ช‡์ดˆ ๊ฑธ๋ฆฐ๋‹ค' ๋ผ๊ณ  ํ•˜์ง€ ์•Š๊ณ , ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์•ผ ํ•˜๋Š”์ง€๋กœ ๋น„๊ตํ•œ๋‹ค.

 

๋ฐ์ดํ„ฐ๊ฐ€ n๊ฐœ ์ž…๋ ฅ๋˜์—ˆ์„ ๋•Œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์•ผ ํ•˜๋Š”์ง€๋ฅผ ์‹œ๊ฐ„๋ณต์žก๋„(Time Complex)๋ผ๊ณ  ํ•œ๋‹ค. ์ด๊ฒƒ์„ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ Big-O ํ‘œ๊ธฐ๋ฒ•์ด ์žˆ๋‹ค. 

 

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

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

 

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์‚ฌํ•ญ์„ ์ฃผ์˜ํ•œ๋‹ค.

 

1. ์ ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ƒํ•œ์„ ๋”ฐ์ง€๊ธฐ ๋•Œ๋ฌธ์— 10๊ฐœ, 100๊ฐœ ๋“ฑ ์ ์€ ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ ์ฐจ์ด๋Š” ๋ฏธ๋ฏธํ•˜๋‹ค.

 

2. ์ตœ๊ณ ์ฐจํ•ญ๋งŒ ํ‘œ๊ธฐํ•œ๋‹ค.

'์ตœ๋Œ€ ์ด๋Ÿฐ ๋น„์œจ๋กœ ์ฆ๊ฐ€ํ•  ๊ฒƒ์ด๋‹ค' ๋ผ๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ ์ผ์ •ํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ์ƒ์ˆ˜ํ•ญ์€ ์˜๋ฏธ๊ฐ€ ์—†์–ด ํ‘œ๊ธฐํ•˜์ง€ ์•Š๋Š”๋‹ค.(n*n-1 ์ด๋‚˜ n*n ์ด๋‚˜ ์˜๋ฏธ๋Š” ๊ฐ™์œผ๋‹ˆ...)

 

์•„๋ž˜๋Š” ์ž์ฃผ ์“ฐ์ด๋Š” ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์„ ์ •๋ฆฌํ•œ ํ‘œ์ด๋‹ค.

ํ‘œ๊ธฐ๋ฒ• ์„ค๋ช…
O(1) - constance time ํ•œ ๋‹จ๊ณ„๋งŒ ๊ฑฐ์นจ. ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•ด๋„ ์„ฑ๋Šฅ์— ๋ณ€ํ™”๊ฐ€ ์—†์Œ.
O(n) ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๋‹จ๊ณ„๊ฐ€ ์ถ”๊ฐ€๋จ. n๊ฐœ๋ฉด n๋ฒˆ์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ์…ˆ.
O(n*m) n๋ฒˆ์˜ ๋‹จ๊ณ„๊ฐ€ m๋ฒˆ ๋ฐ˜๋ณต๋จ
O(n^2) n๋ฒˆ์˜ ๋‹จ๊ณ„๊ฐ€ ๊ฐ ํšŒ์ฐจ ๋•Œ n๋ฒˆ ๋” ๋ฐ˜๋ณต๋˜๋Š” ๊ฒƒ.
O(2^n) - exponential time 2์ง„ํŠธ๋ฆฌ์ฒ˜๋Ÿผ ๊ฐ ๋‹จ๊ณ„๋Š” 2๊ฐ€์ง€์˜ ํ•˜์œ„ ๋‹จ๊ณ„๊ฐ€ ์žˆ๊ณ  ํ•˜์œ„ ๋‹จ๊ณ„๋„ ๊ทธ ์•„๋ž˜ 2๊ฐ€์ง€ ํ•˜์œ„ ๋‹จ๊ณ„๋ฅผ ๊ฐ€์ง.
O(m^n) - expoenetial time ์œ„ ์ฒ˜๋Ÿผ ๊ฐ ๋‹จ๊ณ„์˜ ํ•˜์œ„ ๋‹จ๊ณ„๊ฐ€ m ๊ฐœ๋ผ๋ฉด O(m^n) ์œผ๋กœ ํ‘œํ˜„.
O(log n) ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น  ๋•Œ๋งˆ๋‹ค ํ•ด์•ผ๋˜๋Š” ์ž‘์—…์ด ๋ฐ˜์ ˆ๋กœ ์ค„์–ด๋“ฆ

 


์ž๋ฃŒ๊ตฌ์กฐ

๋ฐ˜์‘ํ˜•