๐พ Algorithm/- ์๋ฃ๊ตฌ์กฐ & ์๊ณ ๋ฆฌ์ฆ16 [์๋ฃ๊ตฌ์กฐ] ๋ ธ๋๋ก ์ด๋ฃจ์ด์ง ํธ๋ฆฌ ๊ตฌํํ๊ธฐ (By Java) ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ํธ๋ฆฌ๋ฅผ ์๊ณ ๋ฆฌ์ฆ ๋ํ๋ ๋ฌธ์ ์์ ํ๊ธฐ ์ฝ๊ฒ ํ ๋ฒ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค. ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ๋ ์ง๋ ํธ๋ฆฌ ์๋ฃ ๊ตฌ์กฐ(1)-๊ธฐ๋ณธ ํธ๋ฆฌ ์ฉ์ด ๋ฐ ๊ฐ๋ ํํธ์์ ์ค๋ช ํ์ผ๋ฏ๋ก ์๋ตํ๊ณ ๋ฐ๋ก ๊ตฌํ์ ํด๋ณด๋๋ก ํ๊ฒ ๋ค. ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ํต์ฌ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์์์ ํต์ฌ์ ๋ฐ๋ก ๋ ธ๋์ด๋ค. ์ฌ๊ธฐ์ ๋ ธ๋๋ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋ ํ๋ ํ๋์ ์์์ธ ์ ์ด๋ค. ๋ ธ๋๋ ํฌ๊ฒ Data Field์ Link Field๋ก ๋๋์ด์ ธ ์๋ค. ์ ๊ธฐ ์์์ ๋ณด๋ฉด ๊ฐ๊ฐ์ ์ซ์์ ํด๋นํ๋ ๋ถ๋ถ์ด Data Field์ด๋ฉฐ ์ฐ๊ฒฐ๋์ด ์๋ ๊ฐ์ ์ Link Field์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์์์ ๋ง ํ๋ฏ์ด ๋ ธ๋๋ Data Field์ Link Field๊ฐ ํฉ์ณ์ง ๊ตฌ์กฐ์ด๋ฏ๋ก ์ด๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ฆฐ๋ค๋ฉด ์๋์.. 2020. 9. 23. [์๋ฃ ๊ตฌ์กฐ] Java๋ก ๊ทธ๋ํ ๊ตฌํํ๊ธฐ :: ์ธ์ ๋ฆฌ์คํธ๋ก ๊ตฌํํ ๊ทธ๋ํ To Do ์ธ์ ๋ฆฌ์คํธ๋? ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ๋ฅผ ์ธ์ ๋ฆฌ์คํธ๋ก ๊ตฌํํ๊ธฐ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ๋ฅผ ์ธ์ ๋ฆฌ์คํธ๋ก ๊ตฌํํ๊ธฐ ์ง๋ ์๊ฐ์ ์ฐ๋ฆฌ๋ ์ธ์ ํ๋ ฌ๋ก ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๋ ์๊ฐ์ ๊ฐ์ก๋ค. ์ค๋์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ธ ์ธ์ ๋ฆฌ์คํธ๋ก ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด์. ์ธ์ ๋ฆฌ์คํธ Adjancency List ์ธ์ ๋ฆฌ์คํธ๋ ํ ๋ ธ๋์ ์ฐ๊ฒฐ ์ํ๋ฅผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ๊ตฌํํ ๊ฒ์ ์๋ฏธํ๋ค. ์ฐ๋ฆฌ๊ฐ ์๊น ์์์ ๋ง๋ค์ด ๋จ๋ ์์์ ๊ทธ๋ํ๋ฅผ ํ ๋๋ก ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด๋ณด์. ๋ ธ๋๊ฐ 6๊ฐ๊ฐ ์์ผ๋ฏ๋ก 1๋ฒ ๋ ธ๋๋ถํฐ ๊ด๊ณ๋ฅผ ์ฐพ์๋ณด์ 1 -> 2 2 -> 1 - 3 - 4 3 -> 2 - 4 - 5 4 -> 3 - 5 - 6 5 -> 3 - 4 6 -> 4 ๊ด๊ณ๋ฅผ ์ฐพ์์ผ๋ ์ด์ ๊ฐ ๋ ธ๋์ ํด๋นํ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด๋ณด์. ์์ค ์ฝ๋.. 2020. 7. 21. [์๋ฃ ๊ตฌ์กฐ] Java๋ก ๊ทธ๋ํ ๊ตฌํํ๊ธฐ :: ์ธ์ ํ๋ ฌ๋ก ๊ตฌํํ ๊ทธ๋ํ ์ฐ๋ฆฌ๋ ์ง๋ ์๊ฐ์ ๊ทธ๋ํ์ ๋ํด์ ํ์ตํ์๋ค. ์ด๋ฒ์๋ ์ด๋ก ์ ์ธ ๊ทธ๋ํ๋ฅผ ์ง์ Java๋ฅผ ์ด์ฉํ์ฌ ์ฝ๋๋ก ์ฎ๊ฒจ ๋ณด๋ ํ์ต์ ํด๋ณผ ์์ ์ด๋ค. ์ด์ ๊ฐ์ ๋ ธ๋๋ฅผ ๊ฐ๊ณ ์๋ ๊ทธ๋ํ๊ฐ ์๋ค๊ณ ์๊ฐํด๋ณด์. ์ง๋ ๋ฒ์๋ ๋ง ํ๋ฏ์ด ๊ทธ๋ํ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์๋ค. ์ธ์ ํ๋ ฌ ์ธ์ ๋ฆฌ์คํธ ์ค๋์ ์ธ์ ํ๋ ฌ๋ก ๊ทธ๋ํ๋ฅผ ๊ตฌํํด๋ณผ ๊ฒ์ด๋ค. ์ธ์ ํ๋ ฌ ์ธ์ ํ๋ ฌ(adjacency matrix)์ด๋ ์ ๊ทธ๋ํ์์ ์ด๋ ๊ผญ์ง์ ๋ค์ด ๋ณ์ผ๋ก ์ฐ๊ฒฐ๋์๋์ง ๋ํ๋ด๋ ์ ์ฌ๊ฐ ํ๋ ฌ์ด๋ค. ์ถ์ฒ : ์ํค ๋ฐฑ๊ณผ ์ํค ๋ฐฑ๊ณผ์์๋ ์ธ์ ํ๋ ฌ์ ๋ํ ์๋ก ๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ฆผ์ ๋ณด์ฌ์ค๋ค. ์ด ๊ทธ๋ฆผ์ ๋ถ์ํด๋ณด์๋ฉด 1๋ฒ ๋ ธ๋๋ถํฐ 6๋ฒ ๋ ธ๋๊น์ง ์ฐ๊ฒฐ๋์ด ์๋ ๋ ธ๋์ 1์ ๋ฃ๋ ๊ฒ์ด๋ค. ๊ทธ๋ผ ์๊น ๊ทธ๋ ธ๋ ๊ทธ๋ํ๋ฅผ ํ ๋ฒ ์ธ์ ํ๋ ฌ๋ก ์ฎ๊ฒจ ๋ณด์. .. 2020. 7. 21. [์๋ฃ ๊ตฌ์กฐ] ์๋ฐ๋ฅผ ์ด์ฉํ ํธ๋ฆฌ์ 3๊ฐ์ง ์ํ ๋ฐฉ๋ฒ ๊ตฌํํ๊ธฐ :: Tree Traversal (InOrder, PostOrder, PreOrder) ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ตํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ์ง๋ ์๊ฐ์์ ์ค๋ช ํ๋ฏ์ด ํ์์ ํจ์จ์ ์ผ๋ก ํ๊ธฐ ์ํจ ์ด๋ผ๊ณ ํ๋ค. ์ด๋ฐ ํธ๋ฆฌ ํ์ํ๋๋ฐ์ ์กฐ๊ธ ๋ ํจ์จ์ ์ด๋ฉฐ ์ฒด๊ณ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋๋ฐ, ๊ทธ ๋ํ ์ฃผ์ 3๊ฐ์ง๋ฅผ ์ด๋ฒ ์๊ฐ์๋ ์์๋ณด๊ณ ๊ตฌํ๊น์ง ๋ง์ณ๋ณด๊ฒ ๋ค. InOrder PreOrder PostOrder ๋ ๋ฒจ ์์ ์ํ (์ด๋ฒ์๋ ๋ค๋ฃจ์ง ์์ ๊ฒ์ด๋ค) ์ํ for(String name : names) { name.toString(); } ๋ฐฐ์ด์ ์ธ๋ฑ์ค 0 ๋ถํฐ ๊ธธ์ด๋งํผ ๋ฐ๋ณตํ๋ ๊ฒ์ด Iteration ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ํ๋ฅผ ํ๋ ๊ฒ์ด๋ค. ์ํ๋ผ๊ณ ํ๋ค๋ฉด ์์ด๋ก๋ Circulation. ๋ฐ๋ก ์์๋ฅผ ํ๋ ํ๋ ํ์ธํ๋ค๋ ๋ป์ด๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ค ๋ง์ ๋ถ๋ถ์์ ์ํ๋ฅผ ๊ฒฝํํด ์์๋ค. ํ์ง๋ง ์์ผ๋ก ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ธ ์ํ์ ๋ค๋ฅธ ์ .. 2020. 7. 8. ์ด์ 1 2 3 4 ๋ค์