๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ Computer Science/Algorithm

[Algorithm] ์‹œ๊ฐ„๋ณต์žก๋„(Time-Complexity)๋ž€? (feat. Big O)

by Fomagran ๐Ÿ’ป 2021. 9. 29.
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค!

 

์š”์ฆ˜ ๋“ค์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•˜๋Š”๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•ต์‹ฌ์ธ ์‹œ๊ฐ„๋ณต์žก๋„์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•„์„œ..

 

์ด๋ฒˆ ๊ธฐํšŒ์— ๊ตฌ์ฒด์ ์œผ๋กœ ์‹œ๊ฐ„๋ณต์žก๋„์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~


์‹œ๊ฐ„๋ณต์žก๋„๋ž€? โฑ

 

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

 

์ฆ‰, ๊ณ„์‚ฐ๋˜๋Š” ์–‘์— ๋”ฐ๋ผ์„œ ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆด์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์‹œ๊ฐ„๋ณต์žก๋„ ํ‘œ๊ธฐ๋ฒ• ๐Ÿ–Š

 

์‹œ๊ฐ„๋ณต์žก๋„ ํ‘œ๊ธฐ๋ฒ•์€ ๋น…์˜ค๋ฉ”๊ฐ€,๋น…์„ธํƒ€,๋น…์˜ค ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

1. BigΩ (Best case)

 

๋น…์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ•์€ ์ตœ์„ ์˜ ์‹คํ–‰์‹œ๊ฐ„ ์ฆ‰, ๊ฐ€์žฅ ๋น ๋ฅธ ์ผ€์ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

2. Big๐šฏ (Average case)

 

๋น…์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ์ตœ์„ ๊ณผ ์ตœ์•…์˜ ํ‰๊ท  ์‹คํ–‰์‹œ๊ฐ„ ์ฆ‰, ํ‰๊ท ์ ์ธ ์ผ€์ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

3. BigO (Worst case)

 

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ์ตœ์•…์˜ ์‹คํ–‰์‹œ๊ฐ„ ์ฆ‰, ๊ฐ€์žฅ ๋Š๋ฆฐ ์ผ€์ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

ํ”„๋กœ๊ทธ๋žจ ์ƒ์—์„œ ๋ฌธ์ œ๋ผ๊ณ  ํ•˜๋ฉด ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰๋  ๋•Œ์ž–์•„์š”?

 

๊ณ ๋กœ ๋ณดํ†ต์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ‘œ๊ธฐํ•  ๋•Œ ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


์‹œ๊ฐ„๋ณต์žก๋„ ์ˆ˜ํ–‰์‹œ๊ฐ„ โฐ

 

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์‹œ๊ฐ„๋ณต์žก๋„ ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ๋‚ฎ์€ ๊ฒƒ๋ถ€ํ„ฐ ๋†’์€ ๊ฒƒ๊นŒ์ง€ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

1. O(1)

 

n์ด ๋ช‡๊ฐœ ์žˆ๋“ ์ง€ ๊ฐ„์— ์‹คํ–‰์‹œ๊ฐ„์ด ์ผ์ •ํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

ex) 1๋ถ€ํ„ฐ 100๋งŒ๊นŒ์ง€๋ฅผ key๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•ด์‰ฌ ํ…Œ์ด๋ธ” ์ค‘ 7์„ key๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” value ๊ฐ’์„ ์ฐพ์„ ๋•Œ

 

2. O(logn)

 

logn์€ logโ‚‚n๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

 

(์ €๋Š” logn์€ n์„ ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ์‰ฝ๋”๋ผ๊ตฌ์š”.

 

log8์„ ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋Š” 4 - 2 - 1์ด๋ฏ€๋กœ 3์ž…๋‹ˆ๋‹ค.)

 

ex) ์ด์ง„ ํƒ์ƒ‰์„ ํ†ตํ•ด์„œ ๊ฐ’์„ ์ฐพ์„ ๋•Œ

 

3. O(n)

 

๋ณดํ†ต n๊ฐœ์˜ ๋ชจ๋“  ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•ด์„œ ์ฐพ์•„์•ผ ํ•˜๋Š” ์ˆ˜ํ–‰์‹œ๊ฐ„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

ex)1๋ถ€ํ„ฐ 100๋งŒ๊นŒ์ง€ ๋ฌด์ž‘์œ„๋กœ ์ˆซ์ž๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด ์ค‘ 7์„ ์ฐพ์•„์•ผ ํ•  ๋–„

 

4. O(nlogn)

 

ex) ๋ณ‘ํ•ฉ ์ •๋ ฌ์„ ํ†ตํ•ด์„œ ๊ฐ’์„ ์ •๋ ฌํ•  ๋•Œ

 

5. O(n^2)

 

๋ณดํ†ต ์ด์ค‘ for๋ฌธ์„ ์ด์šฉํ•ด์„œ n๊ฐœ์˜ ๊ฐ’์„ n๋ฒˆ ๋Œ€์ž…ํ•ด์•ผ ํ•˜๋Š” ์ˆ˜ํ–‰์‹œ๊ฐ„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

ex) ๋ฐฐ์—ด a์˜ ๊ฐ’์ด ๋ฐฐ์—ด b์— ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ

 

6. O(2^n)

 

2์˜ n์ œ๊ณฑ๋งŒํผ ๋Š˜์–ด๋‚˜๋ฏ€๋กœ n์ด ๋Š˜์ˆ˜๋ก ์ •๋ง ๊ฐ€ํŒŒ๋ฅธ ์ˆ˜ํ–‰์‹œ๊ฐ„์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

ex) ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด,์žฌ๊ท€ ํƒ์ƒ‰์„ ํ†ตํ•ด ๊ฐ’์„ ์ฐพ์„ ๋–„

 

7. O(n!)

 

์ตœ์•…์˜ ์ˆ˜ํ–‰์‹œ๊ฐ„์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

ex) ํŒฉํ† ๋ฆฌ์–ผ

 

n์˜ ๊ฐ’์ด ์ปค์งˆ์ˆ˜๋ก ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜:http://bigocheatsheet.com/

 

n์— ๋”ฐ๋ผ์„œ ๊ฑธ๋ฆฌ๋Š” ์ˆ˜ํ–‰์‹œ๊ฐ„์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์‹œ๊ฐ„/n 1 10 100
O(1) 1 1 1
O(logn) 0 2 5
O(n) 1 10 100
O(nlogn) 0 20 461
O(n^2) 1 100 10000
O(2^n) 2 1024 1267650600228229401496703205376
O(n!) 1 3628800 ๋„ˆ๋ฌด ํผ...

์˜ค๋Š˜์€ ์ด๋ ‡๊ฒŒ ์‹œ๊ฐ„๋ณต์žก๋„ ํ‘œ๊ธฐ๋ฒ•๊ณผ ๊ฑธ๋ฆฌ๋Š” ์ˆ˜ํ–‰์‹œ๊ฐ„์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๊ตฌ์ฒด์ ์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ  ๋‚˜๋‹ˆ๊น ์™œ ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์ˆ˜ํ–‰์‹œ๊ฐ„์„ ์„ค๋ช…ํ•˜๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํšจ์œจ์ ์œผ๋กœ ์งœ์•ผํ•˜๋Š”์ง€

 

๋” ์™€๋‹ฟ๋„ค์š”!

 

ํ˜น์‹œ๋ผ๋„ ํ‹€๋ฆฐ ์ ์ด๋‚˜ ๊ถ๊ธˆํ•˜์‹  ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”!

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€