๊ด€๋ฆฌ ๋ฉ”๋‰ด

Coding Planet

์‹œ๊ฐ„๋ณต์žก๋„(Time Complexity)์™€ ๊ณต๊ฐ„๋ณต์žก๋„(Space Complexity) ๋ณธ๋ฌธ

๐ŸŽ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/์•Œ๊ณ ๋ฆฌ์ฆ˜

์‹œ๊ฐ„๋ณต์žก๋„(Time Complexity)์™€ ๊ณต๊ฐ„๋ณต์žก๋„(Space Complexity)

jhj.sharon 2023. 8. 21. 15:40
๋ฐ˜์‘ํ˜•

| ์‹œ๊ฐ„๋ณต์žก๋„(Time Complexity)๋ž€?

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

 

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

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

 

 

์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์˜ˆ

  • O(1): ์ƒ์ˆ˜ ์‹œ๊ฐ„. ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ด ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค.
  • O(log n) : ๋กœ๊ทธ ์‹œ๊ฐ„. ์ด์ง„ ๊ฒ€์ƒ‰๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋‚˜ํƒ€๋‚œ๋‹ค.
  • O(n) : ์„ ํ˜• ์‹œ๊ฐ„. ๋‹จ์ˆœ ๊ฒ€์ƒ‰๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋‚˜์˜จ๋‹ค.
  • O(n log n): ๋ณ‘ํ•ฉ ์ •๋ ฌ ๋˜๋Š” ํ€ต ์ •๋ ฌ๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋‚˜์˜จ๋‹ค.
  • O(nยฒ) : ๋‹คํ•ญ ์‹œ๊ฐ„. ๋ฒ„๋ธ” ์ •๋ ฌ, ์‚ฝ์ž… ์ •๋ ฌ, ์„ ํƒ ์ •๋ ฌ ๋“ฑ์—์„œ ๋‚˜ํƒ€๋‚œ๋‹ค.
  • O(2โฟ) : ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋‚˜ ๊ณต๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์ž…๋ ฅ ํฌ๊ธฐ์— ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค. ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋ฉฐ ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ์—๋งŒ ์‹ค์ œ๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ex)ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์žฌ๊ท€์  ๊ตฌํ˜„, ์ด์ค‘ for๋ฌธ

[faster]    
O(1) < O(log n) < O(nlog n) < O(nยฒ) < O(2โฟ)    [slower]

 


| ๊ณต๊ฐ„๋ณต์žก๋„(Space Complexity)๋ž€?

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

 

๊ณต๊ฐ„ ๋ณต์žก๋„์˜ ๊ตฌ์„ฑ

  • ๊ณ ์ • ๊ณต๊ฐ„(Fixed Space): ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰์— ํ•„์š”ํ•œ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋ณ€์ˆ˜, ์ƒ์ˆ˜, ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋“ฑ์ด๋‹ค.
  • ๊ฐ€๋ณ€ ๊ณต๊ฐ„(Variable Space) : ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰์— ๋”ฐ๋ผ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ์žฌ๊ท€ ์Šคํƒ, ๋™์  ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์ด๋‹ค.

 


| ์ •๋ฆฌ

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

 

 

๋ฐ˜์‘ํ˜•
Comments
Coding PlanetBelieve in the process