[JavaScript/section 8] 02 - ์ด์ง„์ˆ˜ ์ถœ๋ ฅ(์žฌ๊ท€)
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 02 - ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์ด์ง„์ˆ˜ ์ถœ๋ ฅ 10์ง„์ˆ˜ N์ด ์ž…๋ ฅ๋˜๋ฉด 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‹จ, ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ด์ง„์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ • 1๋‹จ๊ณ„: ๋ณ€ํ™˜ํ•˜๋ ค๋Š” ์ˆ˜๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ํ›„ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€ ๊ธฐ๋ก 2๋‹จ๊ณ„: 1๋‹จ๊ณ„์—์„œ ๊ณ„์‚ฐํ•œ ๋ชซ์„ 2๋กœ ๋‚˜๋ˆˆ ํ›„ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€ ๊ธฐ๋ก, ...๋ชซ์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต ๊ธฐ๋กํ•œ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ์•„๋ž˜์—์„œ ์œ„๋กœ ์ฝ์œผ๋ฉด 2์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ ์™„๋ฃŒ ๐Ÿ‘ ํ’€์ด ๋ฐฉ๋ฒ• ์ด์ง„์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ •์„ ๋ณด๋ฉด ๊ธฐ๋กํ•œ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ์•„๋ž˜์—์„œ ์œ„๋กœ ์ฝ์–ด์•ผ(LIFO ๊ตฌ์กฐ) 2์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. (์ฐธ๊ณ ) ์žฌ๊ท€ํ•จ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชซ(L)์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•˜์—ฌ DFS() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ์ธ์ž๋Š” 2๋กœ ๋‚˜๋ˆˆ ๋ชซ(์ •์ˆ˜)์„ ..
[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๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค. ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์ข…๋ฃŒ๋˜๋ฉด..
_์„ฑํ˜ธ_
'์žฌ๊ท€ํ•จ์ˆ˜' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก