๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL๐Ÿ”ฅ/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

[์ด์ฝ”ํ…Œ] ๋ณต์žก๋„

by hk713 2022. 11. 3.
๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋‹ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋ณต์žก๋„๊ฐ€ ๋‚ฎ์„์ˆ˜๋ก ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

 

1_  ์‹œ๊ฐ„ ๋ณต์žก๋„(Time Complexity)

'์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š”์ง€' → ์—ฐ์‚ฐ ํšŸ์ˆ˜

 

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

: ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ํ•ญ๋งŒ์„ ๊ณ ๋ คํ•˜๋Š” ํ‘œ๊ธฐ๋ฒ•

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ• ๋ช…์นญ
O(1) ์ƒ์ˆ˜ ์‹œ๊ฐ„ (Constant time)
O(logN) ๋กœ๊ทธ ์‹œ๊ฐ„ (Log time)
O(N) ์„ ํ˜• ์‹œ๊ฐ„
O(NlogN) ๋กœ๊ทธ ์„ ํ˜• ์‹œ๊ฐ„
O(N^2) ์ด์ฐจ ์‹œ๊ฐ„
O(N^3) ์‚ผ์ฐจ ์‹œ๊ฐ„
O(2^n) ์ง€์ˆ˜ ์‹œ๊ฐ„

(์‹œ๊ฐ„ ๋ณต์žก๋„ ํ‘œ์—์„œ ์œ„์ชฝ์— ์žˆ์„์ˆ˜๋ก ๋” ๋น ๋ฆ„)

 

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

์˜ˆ๋ฅผ ๋“ค์–ด, ์‹œ๊ฐ„ ์ œํ•œ 1์ดˆ์ธ ๋ฌธ์ œ์— ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜ N์ด 1000๋งŒ๊ฐœ๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด O(N)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ๋™์ž‘ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

 

2_  ๊ณต๊ฐ„ ๋ณต์žก๋„(Space Complexity)

'์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋Š”์ง€' → ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ๋Š” ๋ณดํ†ต ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ 128~512MB ์ •๋„๋กœ ์ œํ•œํ•œ๋‹ค.

์ฆ‰, ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ 1000๋งŒ ๋‹จ์œ„๋ฅผ ๋„˜์–ด๊ฐ€์ง€ ์•Š๊ฒŒ๋” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.

 

3_ ์‹œ๊ฐ„ ์ธก์ •

import time

s_time = time.time() 
## ์‹œ๊ฐ„ ์ธก์ •ํ•  ์†Œ์Šค ์ฝ”๋“œ
e_time = time.time()

print("์ˆ˜ํ–‰ ์‹œ๊ฐ„ :",  e_time - s_time)

 

 

 

โš ๏ธ ํ•ด๋‹น ๊ธ€์€ '์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ <์ €์ž_ ๋‚˜๋™๋นˆ>' ์ฑ…์„ ๊ณต๋ถ€ํ•˜๊ณ  ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€