Algorithm/보좩

[μ•Œκ³ λ¦¬μ¦˜ 보좩] μŠ€νƒ ν”„λ ˆμž„(Stack Frame)

_μ„±ν˜Έ_ 2022. 10. 14. 00:19
728x90
λ°˜μ‘ν˜•

πŸ“Œ μŠ€νƒ ν”„λ ˆμž„(Stack Frame)

λ©”λͺ¨λ¦¬ μŠ€νƒ(Stack) μ˜μ—­μ€ ν•¨μˆ˜μ˜ 호좜과 κ΄€κ³„λ˜λŠ” μ§€μ—­λ³€μˆ˜μ™€ λ§€κ°œλ³€μˆ˜, λ°˜ν™˜ μ£Όμ†Œ 값이 μ €μž₯λ˜λŠ” μ˜μ—­μ΄λ‹€.
μŠ€νƒ μ˜μ—­μ€ ν•¨μˆ˜μ˜ 호좜과 ν•¨κ»˜ ν• λ‹Ήλ˜λ©°, ν•¨μˆ˜μ˜ 호좜이 μ™„λ£Œλ˜λ©΄ μ†Œλ©Έν•œλ‹€.

ν•¨μˆ˜κ°€ 호좜되면 μŠ€νƒμ—λŠ” ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜, 호좜이 λλ‚œ λ’€ λŒμ•„κ°ˆ λ°˜ν™˜ μ£Όμ†Œ κ°’, ν•¨μˆ˜μ—μ„œ μ„ μ–Έλœ μ§€μ—­λ³€μˆ˜ 등이 μ €μž₯λœλ‹€. κ·Έλž˜μ„œ μŠ€νƒ ν”„λ ˆμž„μ΄ 뭔데❓❓
μ΄λ ‡κ²Œ μŠ€νƒ μ˜μ—­μ— μ°¨λ‘€λŒ€λ‘œ μ €μž₯λ˜λŠ” ν•¨μˆ˜μ˜ 호좜 정보λ₯Ό μŠ€νƒ ν”„λ ˆμž„μ΄λΌκ³  ν•œλ‹€.
μ΄λŸ¬ν•œ μŠ€νƒ ν”„λ ˆμž„ 덕뢄에 ν•¨μˆ˜μ˜ 호좜이 λͺ¨λ‘ λλ‚œλ’€μ— ν•΄λ‹Ή ν•¨μˆ˜κ°€ 호좜되기 이전 μƒνƒœλ‘œ λ˜λŒμ•„κ°ˆ 수 μžˆλ‹€.

μŠ€νƒ ν”„λ ˆμž„(Stack Frame) λ™μž‘ 방식

ex) μž¬κ·€ν•¨μˆ˜

function solution(n) {
  function DFS(L) {
    if (L === 0) return;
    else {
      DFS(L - 1); // λ°˜ν™˜ μ£Όμ†Œ κ°’
      console.log(L);
    }
  }
  DFS(n);
}

solution(2);
좜λ ₯
1
2

πŸ’» μ°Έκ³ ν•œ μ‚¬μ΄νŠΈ

http://www.tcpschool.com/c/c_memory_stackframe

μ½”λ”©κ΅μœ‘ ν‹°μ”¨ν”ΌμŠ€μΏ¨

4μ°¨μ‚°μ—…ν˜λͺ…, μ½”λ”©κ΅μœ‘, μ†Œν”„νŠΈμ›¨μ–΄κ΅μœ‘, μ½”λ”©κΈ°μ΄ˆ, SWμ½”λ”©, κΈ°μ΄ˆμ½”λ”©λΆ€ν„° μžλ°” 파이썬 λ“±

tcpschool.com