Algorithm
- ์ปดํจํฐ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋๊ฐ? -
์ปดํจํฐ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋๊ฐ?
• ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ๋งต
- ์ผ๋ฐ์ ์ธ ์ด์์ฒด์ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๋ ๊ตฌ์กฐ
- ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๋ ๋ฐฉ์์ด ๊ฐ ์ด์์ฒด์ ๋ง๋ค ๋ค๋ฆ.
์ด์์ฒด์ ๋ ์ผ์ข ์ ๊ตฌ๋ถ๊ตฌ๋ถํ ๊ธธ์ ํํํ ์์ ์ ๊ฑฐ์ณ ํํํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ์ญํ ์ ํ๋ค๊ณ ํ ์ ์๋ค.
• ๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์กฐ
๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์กฐ๋ ํฌ๊ฒ ์ธ๊ฐ์ง๋ก ๊ตฌ๋ถํ ์ ์๋๋ฐ ๋ฐ๋ก ๊ธ๋ก๋ฒ์์ญ, ํ์์ญ, ์คํ์์ญ์ด๋ค.
์ธ๊ฐ์ง๋ก ๋๋์์ญ์ ๊ฐ ํ๋ก์ธ์ค๋ ํน์ฑ์ ๋ง๊ฒ ๊ฐ์์ญ์ผ๋ก ๋๋ ์ ๋ค์ด๊ฐ๊ฒ ๋๋ค.
• ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ - Stack ์์ญ
- ์คํ์ด๋ ๋์ ๋งค๋๋์ฆ์ผ๋ก ๋์๋ฐฉ์์ ์๋ฏธํ๋ค.
- ์ปดํ์ผ ํ์ Compile Time
- ํจ์๋ด์์ ์ ์๋์ด์ง๋ ๋ณ์์ธ ์ง์ญ๋ณ์๊ฐ stack์์ญ์ ๋ค์ด๊ฐ๊ฒ ๋๋ค. ex) ํ๋ฆฌ๋ฏธํฐ๋ธํ์ , ์ฐธ์กฐํ์
- ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋ค์ด์จ๊ฒ ๋์ค์ ๋๊ฐ๋ FILO(First In Last Out) ๊ตฌ์กฐ์ด๋ค.
- ํจ์ํธ์ถ ๋ฐ ์ข ๋ฃ์ ๋์๋ฐฉ์๊ณผ ์คํ์ ์ด์ฉ๋ฐฉ์์ด ์ผ์นํ๋ค.
- PUSHํ๊ณ POPํ๋ ๊ณผ์ ์์ ๋ฐ์ดํฐ๊ฐ ๊พธ์คํ ๋ฐ๋๋ค.
์ฉ์ด )
PUSH ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ฒ
POP ๋ฐ์ดํฐ๋ฅผ ๋นผ๋๊ฒ
SP(Stack Pointer) ์คํ์ POPํ๊ฑฐ๋ PUSHํ ์์น๋ฅผ ์๋ ค์ฃผ๋ ํฌ์ธํฐ
stack-overflow ์คํ์ ๋ฐ์ดํฐ๊ฐ ๊ฝ์ฐฌ ์ํ
stack- underflow ์คํ์ ๋ฐ์ดํฐ๊ฐ ๋น์์ ธ ์๋ ์ํ
• ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ - Global ์์ญ
- ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃํ ๋ ๊น์ง ๊ฐ์ง๊ณ ์์ด์ผํ ๊ฒ์ ๋ด๊ณ ์๋ค.
- ์ปดํ์ผ ํ์ Compile Time
- ๋ช ๋ น์ด์งํฉ(Instruction-SET) - ๋ช ๋ น์ด ๋ชจ์ → ํจ์๋จ์๋ก ๋ชจ์ฌ์๋ค.
- ๋ฆฌํฐ๋ด - ์์ค์ฝ๋์์ ์ฌ์ฉํ๋ ๊ฐ์ข ๊ฐ๋ค
- ์ ์ญํ ์ง์ญ๋ณ์(static)
• ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ - Heap ์์ญ
- new๋ก ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก
- ๋ฐํ์ Run Time
- ํ์์ญ์ ์ธ์ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋ ์ง ์๋ ์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ณ์์ ์ด๋ฆ์ ๋ฐ๋ก ๋ถ์ผ ์๊ฐ ์๋ค.
→ ์ด๋ฆ์ ๋ฐ๋ก ๋ถ์ผ ์ ์์ง๋ง ์์์์น์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
→ ์ด๋์ ์์์ ๋ณด์์น์ธ ๋ํผ๋ฐ์ค ๊ฐ์ ํ์ ๋ค์ด๊ฐ๋ ๋ฐ์ดํฐํฌ๊ธฐ์ ์๊ด์์ด ๋์ผํ๋ค.
- ์ง์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ์ฌ ์ฐธ์กฐ๋ณ์(=๋ํผ๋ฐ์ค๋ณ์)๋ฅผ ํตํด ์ ๊ทผํ๋ค.
- ํ์์ญ์ ์ด๋ค ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋ค์ด์ฌ์ง ๋ชจ๋ฅด๊ธฐ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์์ ๊ฐ๋ฅํ ํฌ๊ฒ ํ ๋นํ๋ค.
• ๋ฐฐ์ด(Array)
- ์ด๋ค Data-type์ T๋ผ๊ณ ํ ๋, T๊ฐ n๊ฐ ์ฐ์ํ์ฌ ํ ๋น๋ ์๋ฃ๊ตฌ์กฐ
- ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ๋์ด๋๊ฑฐ๋ ์ค์ด๋ค ์ ์๊ธฐ ๋๋ฌธ์ Runtime ํ์์ด๋ผ๊ณ ํ ์ ์๋ค.
- ๋ฐฐ์ด์ Heap์์ญ์ ๋ค์ด๊ฐ๊ฒ ๋๋๋ฐ Heap์๋ ์ด๋ฆ์ ๋ถ์ผ์์๊ธฐ๋๋ฌธ์ ์คํ์์ญ์ ์ ์ธํ ๋ณ์์ด๋ฆ์์ ๋ฐฐ์ด์ ์์์ ๋ณด๋ฅผ ๋ด์์ ์์น๋ฅผ ์๋ ค์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋๊ณ ์๋ค.
• ๋ฐฐ์ด์ ๋ง๋๋ ๋ฐฉ๋ฒ
โ ์ด๊ธฐ๊ฐ์ด ์๋ ๊ฒฝ์ฐ
โก ์ด๊ธฐ๊ฐ์ด ์๋ ๊ฒฝ์ฐ
'์๋ > ๊ตญ๋น์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[D+11] ์ฐธ์กฐํ์ (0) | 2022.10.04 |
---|---|
[D+10] ์ฝ๋ฉ๋ฐ์ด (0) | 2022.10.01 |
[D+08] ํจ์, ๋๋ฒ๊ฑฐ (0) | 2022.09.28 |
[D+07] ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ (0) | 2022.09.28 |
[D+06] ์กฐ๊ฑด๋ฌธ & ๋ฐ๋ณต๋ฌธ ์์ (0) | 2022.09.27 |
๋๊ธ