์ด ํ๋ก์ ํธ๋ ๊ทธ๋ฆฌ์ค ์ ํ์์ ์ ๋๋ ํ ์ธ์ฐ์ค์ ๋ฏธ๋ ธํ์ฐ๋ก์ค ๋ฏธ๋ก ๊ฒ์์ C ์ธ์ด๋ก ๊ตฌํํ ํ๋ก๊ทธ๋จ์ ๋๋ค. ํ ์ธ์ฐ์ค๊ฐ ๋ฏธ๋ ธํ์ฐ๋ก์ค๋ก๋ถํฐ ๋๋ง์ณ ๋ฏธ๋ก์์ ํ์ถํ๋ ์ต์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ํ ์ธ์ฐ์ค(T): ํ๋ ์ด์ด ์บ๋ฆญํฐ๋ก, ๋ฏธ๋ก์์ ํ์ถ๊ตฌ(E)๋ก ๋๋ฌํด์ผ ํฉ๋๋ค.
- ๋ฏธ๋ ธํ์ฐ๋ก์ค(M): ํ ์ธ์ฐ์ค๋ฅผ ์ถ์ ํ๋ ๋ชฌ์คํฐ๋ก, ๋งค ํด๋ง๋ค ํ ์ธ์ฐ์ค์๊ฒ ๊ฐ๊น์์ง๋ ค๊ณ ํฉ๋๋ค.
- ํ์ถ๊ตฌ(E): ํ ์ธ์ฐ์ค๊ฐ ๋๋ฌํด์ผ ํ๋ ๋ชฉํ ์ง์ ์ ๋๋ค.
- ๋ฒฝ(#): ์ด๋ํ ์ ์๋ ์ฅ์ ๋ฌผ์ ๋๋ค.
- ๊ณต๊ฐ( ): ์ด๋ ๊ฐ๋ฅํ ์์ญ์ ๋๋ค.
- ํ ์ธ์ฐ์ค๋ ์ํ์ข์ฐ๋ก 2์นธ์ฉ ์ด๋ํ๊ฑฐ๋ ์ ์๋ฆฌ์ ๋จธ๋ฌผ ์ ์์ต๋๋ค (R, L, U, D, S).
- ๋ฏธ๋ ธํ์ฐ๋ก์ค๋ ํ ์ธ์ฐ์ค๋ฅผ ํฅํด ๋งค ํด๋ง๋ค ์ต๋ 2์นธ์ฉ ์ด๋ํฉ๋๋ค.
- ํ ์ธ์ฐ์ค์ ๋ฏธ๋ ธํ์ฐ๋ก์ค๊ฐ ๊ฐ์ ์์น์ ์์ผ๋ฉด ๊ฒ์์ด ์ข ๋ฃ๋ฉ๋๋ค (ํ ์ธ์ฐ์ค ํจ๋ฐฐ).
theseus_minotaur/
โโโ theseus/
โ โโโ HW3_2019707048.c # ๋ฉ์ธ ํ๋ก๊ทธ๋จ ์์ค ์ฝ๋
โโโ README.md # ํ๋ก์ ํธ ์ค๋ช
์
- 10๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฏธ๋ก๊ฐ ํ๋์ฝ๋ฉ๋์ด ์์ต๋๋ค.
- ๊ฐ ๋ฏธ๋ก๋ ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ ๋์ด๋๋ฅผ ๊ฐ์ง๋๋ค.
- ๋ฏธ๋ก ํฌ๊ธฐ: 9ร10๋ถํฐ 21ร31๊น์ง ๋ค์
- BFS (๋๋น ์ฐ์ ํ์) ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ต์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ต๋๋ค.
- ์ํ ๊ณต๊ฐ ํ์: (ํ ์ธ์ฐ์ค ์์น, ๋ฏธ๋ ธํ์ฐ๋ก์ค ์์น)์ ์กฐํฉ์ ์ํ๋ก ์ ์
- ์ค๋ณต ์ํ ๊ฒ์ฌ๋ฅผ ํตํด ํจ์จ์ฑ์ ๊ฐ์
- ํน์ ๋ฏธ๋ก๋ฅผ ํด๊ฒฐํ๋ ๋ฉ์ธ ํจ์
- ํ ์ธ์ฐ์ค, ๋ฏธ๋ ธํ์ฐ๋ก์ค, ํ์ถ๊ตฌ์ ์ด๊ธฐ ์์น๋ฅผ ์ฐพ์ต๋๋ค.
- BFS ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ ๊ตฌํ
- ๊ฐ๋ฅํ ๋ชจ๋ ์ํ๋ฅผ ํ์ํ์ฌ ํด๊ฒฐ์ฑ ์ ์ฐพ์ต๋๋ค.
- ๋ฏธ๋ ธํ์ฐ๋ก์ค์ ๋ค์ ์์น๋ฅผ ๊ณ์ฐ
- ํ ์ธ์ฐ์ค์๊ฒ ๊ฐ์ฅ ๊ฐ๊น์์ง๋ ๋ฐฉํฅ์ผ๋ก ์ด๋
- ํ ์ธ์ฐ์ค๊ฐ ์ด๋ํ ์ ์๋ ๋ชจ๋ ๊ฐ๋ฅํ ์์น๋ฅผ ๊ณ์ฐ
- 5๊ฐ์ง ํ๋: ์ฐ(R), ํ(D), ์ข(L), ์(U), ์ ์ง(S)
cd theseus
gcc -o maze_solver HW3_2019707048.c./maze_solverํ๋ก๊ทธ๋จ์ ๊ฐ ๋ฏธ๋ก์ ๋ํด ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅํฉ๋๋ค:
test 1:
solution found
R R D D L L
test 2:
solution found
R S R R
Maze 1:
solution found
U U L L L L L L U U U U L L
- test 1-3: ์ฒซ 3๊ฐ์ ํ ์คํธ ์ผ์ด์ค
- Maze 1-7: ๋๋จธ์ง 7๊ฐ์ ๋ฏธ๋ก
- ํด๊ฒฐ์ฑ ์ด ์๋ ๊ฒฝ์ฐ: ์ด๋ ๋ช ๋ น์ด ์ํ์ค ์ถ๋ ฅ
- ํด๊ฒฐ์ฑ ์ด ์๋ ๊ฒฝ์ฐ: "No solution" ์ถ๋ ฅ
-
์๊ฐ ๋ณต์ก๋: O(W ร H ร W ร H) = O(WยฒHยฒ)
- W: ๋ฏธ๋ก์ ๋๋น, H: ๋ฏธ๋ก์ ๋์ด
- ๊ฐ๋ฅํ ๋ชจ๋ (ํ ์ธ์ฐ์ค, ๋ฏธ๋ ธํ์ฐ๋ก์ค) ์์น ์กฐํฉ์ ํ์
-
๊ณต๊ฐ ๋ณต์ก๋: O(WยฒHยฒ)
- BFS ํ์ ๋ฐฉ๋ฌธ ์ํ ์ ์ฅ์ ์ํ ๊ณต๊ฐ
- ๊ฐ๋ฐ์: ์ ์๊ธฐ (ํ๋ฒ: 2019707048)
- ๊ณผ๋ชฉ: ์๊ณ ๋ฆฌ์ฆ
- ์ธ์ด: C
- ๊ฐ๋ฐ ํ๊ฒฝ: ํ์ค C ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ
- ์์ ํ ์ํ ๊ณต๊ฐ ํ์: BFS๋ฅผ ํตํด ์ต์ ํด ๋ณด์ฅ
- ๋ค์ํ ๋ฏธ๋ก ์ง์: 10๊ฐ์ ์๋ก ๋ค๋ฅธ ๋์ด๋์ ๋ฏธ๋ก
- ํจ์จ์ ์ธ ์ค๋ณต ๊ฒ์ฌ: ๋์ผํ ์ํ์ ์ฌ๋ฐฉ๋ฌธ์ ๋ฐฉ์ง
- ์ง๊ด์ ์ธ ์ถ๋ ฅ: ์ด๋ ๋ช ๋ น์ด๋ฅผ ๋ฌธ์๋ก ํํ (R, L, U, D, S)
- ๋ฏธ๋ก๊ฐ ํ๋์ฝ๋ฉ๋์ด ์์ด ๋์ ์ผ๋ก ๋ฏธ๋ก๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ์์
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ํฐ ๋ฏธ๋ก์์๋ ๋นํจ์จ์ ์ผ ์ ์์
- GUI ์์ด ํ ์คํธ ๊ธฐ๋ฐ ์ถ๋ ฅ๋ง ์ ๊ณต
์ด ํ๋ก๊ทธ๋จ์ ๊ฒ์ ์ด๋ก ๊ณผ ๊ทธ๋ํ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ค์ ์ ์ฉ ์ฌ๋ก๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ต์ก์ ๊ฐ์น๊ฐ ๋์ ํ๋ก์ ํธ์ ๋๋ค.