
[Algorithm][์์ ํ์] ์ฌ๊ทํจ์(Recursive Function)
ยท
Computer Science/Algorithm
์ฌ๊ทํจ์์ด๋ฒ ํฌ์คํธ์์๋ ์์ ํ์ ๊ธฐ๋ฒ ์ค ํ๋์ธ ์ฌ๊ทํจ์(Recursive Function) ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.์ฌ๊ทํจ์๋?์ฌ๊ทํจ์(Recursion)๋ ์ ์ ๋จ๊ณ์์ ์์ ์ ์ฌ์ฐธ์กฐํ๋ ํจ์์ ๋ฌ๋๋ ์ํ์ธ ๋งค๊ฐ๋ณ์๋ง ๋ฌ๋ผ์ง๋ฉฐ ๋๊ฐ์ ์ผ์ ํ๋ ํจ์์ธ์ ์ฌ์ฉํ ๊น์?ํฐ ๋ฌธ์ → ์์ ๋ฌธ์ ๋ก ๋๋ ์ ํ ๋ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.์ฌ์ฉ์กฐ๊ฑด๋ฐ๋์ ๊ธฐ์ ์ฌ๋ก(Base Case)๋ฅผ ์จ์ผ ํฉ๋๋ค. (์ข
๋ฃ ์กฐ๊ฑด)๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ ์ฌ๊ทํจ์ ํธ์ถ๋ณด๋จ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํฉ๋๋ค. (ํจ์ ํธ์ถ์ ๋ํ Cost ์ต์ํ)์ฌ์ดํด(Cycle)์ด ์์ผ๋ฉด ์๋ฉ๋๋ค.ex) f(a) → f(b) ํธ์ถํ ๋ค, f(b) → f(a)๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐโ ๊ธฐ์ ์ฌ๋ก(Base Case)๐ ์ฌ๊ทํจ์ ์คํ ์ค์ ๋ ์ด์ ์ชผ๊ฐค ์ ์๋ ์กฐ๊ฑด๐ ์ฌ๊ทํจ์..