[JavaScript/section 8] 01 - ์žฌ๊ท€ํ•จ์ˆ˜
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 01 - ์žฌ๊ท€ํ•จ์ˆ˜ ์ž์—ฐ์ˆ˜ N์ด ์ž…๋ ฅ๋˜๋ฉด ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ 1๋ถ€ํ„ฐ N๊นŒ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๐Ÿ‘ ํ’€์ด ๋ฐฉ๋ฒ• ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame)์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋„์›€์ด ๋œ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์€ ๋‹ค์Œ ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame)์€ ๋ฌด์—‡์ธ๊ฐ€? ๋ผ๋Š” ๊ธ€์— ๋”ฐ๋กœ ์ •๋ฆฌํ•˜์˜€๋‹ค. solution ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ DFS(n)๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜, ๋ฐ˜ํ™˜ ์ฃผ์†Œ๊ฐ’. ์ง€์—ญ ๋ณ€์ˆ˜ ๋“ฑ์˜ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์Šคํƒ์— ์ €์žฅ๋œ๋‹ค. L์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ DFS(L - 1) ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ถ”๊ฐ€๋กœ ์Šคํƒ์— ์ €์žฅ๋œ๋‹ค. L์ด 0๊ณผ ๊ฐ™์œผ๋ฉด returnํ•˜๊ณ  ์Šคํƒ์— ์ €์žฅ๋œ ํ•จ์ˆ˜๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ํ˜ธ์ถœํ•˜์—ฌ console.log๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค. ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์ข…๋ฃŒ๋˜๋ฉด..
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณด์ถฉ] ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame)
ยท
Algorithm/๋ณด์ถฉ
๐Ÿ“Œ ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame) ๋ฉ”๋ชจ๋ฆฌ ์Šคํƒ(Stack) ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ๊ด€๊ณ„๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฐ˜ํ™˜ ์ฃผ์†Œ ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ์˜์—ญ์ด๋‹ค. ์Šคํƒ ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ํ• ๋‹น๋˜๋ฉฐ, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธํ•œ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์Šคํƒ์—๋Š” ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜, ํ˜ธ์ถœ์ด ๋๋‚œ ๋’ค ๋Œ์•„๊ฐˆ ๋ฐ˜ํ™˜ ์ฃผ์†Œ ๊ฐ’, ํ•จ์ˆ˜์—์„œ ์„ ์–ธ๋œ ์ง€์—ญ๋ณ€์ˆ˜ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ๋ญ”๋ฐโ“โ“ ์ด๋ ‡๊ฒŒ ์Šคํƒ ์˜์—ญ์— ์ฐจ๋ก€๋Œ€๋กœ ์ €์žฅ๋˜๋Š” ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ์ •๋ณด๋ฅผ ์Šคํƒ ํ”„๋ ˆ์ž„์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์Šคํƒ ํ”„๋ ˆ์ž„ ๋•๋ถ„์— ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ๋ชจ๋‘ ๋๋‚œ๋’ค์— ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame) ๋™์ž‘ ๋ฐฉ์‹ ex) ์žฌ๊ท€ํ•จ์ˆ˜ function solution(n) { function DFS(L) { i..
_์„ฑํ˜ธ_
'Stack Frame' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก