let's get IT with DAVINA ๐Ÿ’ป

์•Œ๊ณ ๋ฆฌ์ฆ˜/๊ณต๊ฐ„ ๋ณต์žก๋„ ๋ณธ๋ฌธ

DEV_IN/Algorithm

์•Œ๊ณ ๋ฆฌ์ฆ˜/๊ณต๊ฐ„ ๋ณต์žก๋„

๋‹ค๋นˆ์น˜์ฝ”๋“œ๐Ÿ’Ž 2023. 2. 24. 19:48

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

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ˆ˜ํ–‰๋˜๋Š” ๋ฐ์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ด๋Ÿ‰
ํ”„๋กœ๊ทธ๋žจ์ด ์š”๊ตฌํ•˜๋Š” ๊ณต๊ฐ„ ⇒ ๊ณ ์ •์ ์ธ ๊ณต๊ฐ„ + ๊ฐ€๋ณ€์ ์ธ ๊ณต๊ฐ„
๊ณ ์ •์ ์ธ ๊ณต๊ฐ„: ์ฒ˜๋ฆฌํ•  ๋ฐ์ดํ„ฐ์˜ ์–‘์— ๋ฌด๊ด€ํ•˜๊ฒŒ ํ•ญ์ƒ ์š”๊ตฌ๋˜๋Š” ๊ณต๊ฐ„์œผ๋กœ์„œ, ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ
๊ฐ€๋ณ€์ ์ธ ๊ณต๊ฐ„: ์ฒ˜๋ฆฌํ•  ํ…Œ์ดํ„ฐ์˜ ์–‘์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์š”๊ตฌ๋˜๋Š” ๊ณต๊ฐ„์œผ๋กœ์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ์คŒ!
  • ๊ณต๊ฐ„ ๋ณต์žก๋„ ๊ณ„์‚ฐ์€ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ณ„์‚ฐ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋น… ์˜ค(Big-O) ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„

  • ๋ณดํ†ต ๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„๋ณด๋‹ค ์ค‘์š”์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
    • WHY? ์‹œ๊ฐ„์ด ์ ์œผ๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ๊นŒ์ง€ ์ง€์†์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—..
    • BUT! ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming)๊ณผ ๊ฐ™์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์ด ๋งค์šฐ ํ•œ์ •๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ณต๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์ค‘์š”!!
  • ex) 
function factorial(n) {
	if(n === 1) {
		return n;
	}
	return n*factorial(n-1);
}
๋ณ€์ˆ˜ n์— ๋”ฐ๋ผ ๋ณ€์ˆ˜ n์ด n๊ฐœ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋˜๋ฉฐ, ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ 1๊นŒ์ง€ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ n๋ถ€ํ„ฐ 1๊นŒ์ง€ ์Šคํƒ์— ์Œ“์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” O(n)์ž…๋‹ˆ๋‹ค.
Comments