๐ฃ๏ธ ์ ์ ์ธํฐ๋ทฐ/์๊ณ ๋ฆฌ์ฆ (3) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ์ ์ ๊ฐ๋ฐ์ ๊ธฐ์ ๋ฉด์ : ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ A* (A-Star) ์๊ณ ๋ฆฌ์ฆ ํด๋ฆฌ์คํฑ ๊ธฐ๋ฐ ํ์: A* ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ์ ํด๋ฆฌ์คํฑ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๋ ธ๋์์ ๋ชฉํ๊น์ง์ ์์ ๋น์ฉ์ ์ถ์ ํ๋ ๊ฒ์ ๋๋ค. ์ด ํด๋ฆฌ์คํฑ์ ํ์ฌ ๋ ธ๋์์ ๋ชฉํ ๋ ธ๋๊น์ง์ ์ต์ ์์ ๋น์ฉ์ ์ ๊ณตํฉ๋๋ค. ์ต์ ๊ฒฝ๋ก ํ์: A* ์๊ณ ๋ฆฌ์ฆ์ ์์ ๋ ธ๋๋ก๋ถํฐ ๋ชฉํ ๋ ธ๋๊น์ง์ ์ต์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ต๋๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ํด๋ฆฌ์คํฑ์ ์ฌ์ฉํ์ฌ ํ์ ๊ณผ์ ์์ ๋นํจ์จ์ ์ธ ๊ฒฝ๋ก๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ, ๋ณด๋ค ํจ์จ์ ์ผ๋ก ๋ชฉํ์ ๋๋ฌํ ์ ์๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ์๋ ๋๋ค. ๋์ ์ธ ๋น์ฉ ํ๊ฐ: A*๋ ๊ฐ ๋ ธ๋์ ๋ํด ๋ ๊ฐ์ง ๋น์ฉ์ ๊ณ์ฐํฉ๋๋ค: ํ๋๋ ์์ ๋ ธ๋๋ก๋ถํฐ ํด๋น ๋ ธ๋๊น์ง์ ์ค์ ๋น์ฉ(G-Cost), ๋ค๋ฅธ ํ๋๋ ํด๋ฆฌ์คํฑ์ ํตํด ์ถ์ ๋ ํด๋น ๋ ธ๋๋ก๋ถํฐ ๋ชฉํ ๋ ธ๋๊น์ง์ ๋น์ฉ(H-Cost). ์ด ๋ ๋น์ฉ์ ํฉ(F-Co.. ์ ์ ๊ฐ๋ฐ์ ๊ธฐ์ ๋ฉด์ ์ค์ ๊ธฐ์ถ : ํต ์ ๋ ฌ ๋ฉด์ ๊ด : ์๊ณ ์๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ํ๋ ์ค๋ช ํด ์ฃผ์ธ์. ๋ : ํต์ ๋ ฌ์ ๋ํด์ ์ค๋ช ํ๊ฒ ์ต๋๋ค. ๋ : ์ฐ์ ํต์ ๋ ฌ์ ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฌธ์ ๋ฅผ ์์ 2๊ฐ์ ๋ฌธ์ ๋ก ๋ถ๋ฆฌํ๊ณ ๊ฐ๊ฐ์ ํด๊ฒฐํ ๋ค์, ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์์ ์๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ ๋ต์ ๋๋ค. ํต์ ๋ ฌ์ ๋ถํ , ์ ๋ณต, ๊ฒฐํฉ์ ๋จ๊ณ๋ค๋ก ์ด๋ฃจ์ด์ง๋๋ค. ๋ : ๊ณผ์ ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค. ๋จผ์ ๋ฐฐ์ด์์ ํ ์์๋ฅผ ํผ๋ฒ์ผ๋ก ์ค์ ํฉ๋๋ค. ํผ๋ฒ์ ๊ธฐ์ค์ผ๋ก ํผ๋ฒ๋ณด๋ค ์์์์๋ ํผ๋ฒ์ ์ผ์ชฝ์ผ๋ก ํผ๋ฒ๋ณด๋ค ํฐ ์์๋ ํผ๋ฒ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฎ๊น๋๋ค. ํผ๋ฒ์ ์ ์ธํ ์ผ์ชฝ ๋ฐฐ์ด๊ณผ ์ค๋ฅธ์ชฝ ๋ฐฐ์ด์ ๋ค์ ์ ๋ ฌ ํฉ๋๋ค. ๋ถํ ๋ ๋ถ๋ถ ๋ฐฐ์ด์์ ๋ค์ ํผ๋ฒ์ ์ ํ ํ ํผ๋ฒ์ ๊ธฐ์ค์ผ๋ก 2๊ฐ์ ๋ถ๋ถ๋ฐฐ์ด๋ก ๋๋๋ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค. ์ด๋ฐ ๊ณผ์ ์ ๋ถ๋ถ ๋ฐฐ์ด๋ค์ด ๋ ์ด์ ๋ถํ ํ ์ ์์ ๋ ๊น์ง ๋ฐ๋ณตํ.. ์ ์ ๊ฐ๋ฐ์ ๊ธฐ์ ๋ฉด์ ์๊ณ ๋ฆฌ์ฆ : ๋์ ๊ณํ๋ฒ DP #include using namespace std; long long d[100]; long long fibo(int x){ if(x==1 || x==2){ return 1; } if(d[x]!=0){ return d[x]; } d[x]=fibo(x-1)+fibo(x-2); return d[x]; } int main(){ cout ์ด์ 1 ๋ค์