๊ทธ๋ ๋ง๋ค. ๋๋ ์ด๋ฅธ๋ฐ ์(๊ณ ๋ฆฌ์ฆ) ๋ฐ(๋ณด)์ด๋ค. ํ์ง๋ง ! ๋๋ ์๊ณ ๋ฆฌ์ฆ ์ํ๊ณ ์ถ๋ค. ๊ทธ๋์ ! ๋๋ ๊ณต๋ถํ๋ ค๊ณ ํ๋ค. ์๊ณ ๋ฆฌ์ฆ์. ์ด๋ป๊ฒ ! ๋งค์ผ๋งค์ผ. ์๊ณ ๋ฆฌ์ฆ๊ณผ ์๋ฃ๊ตฌ์กฐ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๊ฒ์ด๋ค. ํฐ ๋ง๋จน๊ณ ๊ฐ์๋ ์๋ค. ๋ค์ด์ดํธ๋ฅผ ํ๋ ค๋ฉด ์ฃผ๋ณ์ฌ๋๋ค์๊ฒ
ํํ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ, ๋๋ ํ์๋ฒ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.ํ์ฌ ์ํฉ์์ ๋น์ฅ ๊ฐ์ฅ ์ข์๋ณด์ด๋ ์ํฉ๋ง์ ์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฐฉ๋ฒ์ผ๋ก, ์ต์ ์ ํด๋ฅผ ๊ตฌํ๊ธฐ ์ํ ๊ทผ์ฌ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ๋ ๋๊ฐ ๋ง๋ค.โ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฝ๋ฉํ ์คํธ์์ ์์ฃผ ๋ฑ์ฅํ๋ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ด๋ค.๋ฃจํธ์์ ์ถ๋ฐํด
๋ฐฑํธ๋ํน ์๊ณ ๋ฆฌ์ฆ์ ์ฝ๋ฉํ ์คํธ์์ ์ถ์ ๋น๋๊ฐ ๋์ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ก, ํน์ ๊ทธ๋ํ์์ ์์ ํ์์ด ๊ฐ๋ฅํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ํนํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ ๋ คํด์ผํ ๋ ์ ์ฉํ๋ค.์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ํ/ํธ๋ฆฌ์ ๋ชจ๋ ์์๋ฅผ ์์ ํ์ํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.DFS : ์ผ๋ฐ์ ์ผ
์์ ์ฌ๊ทํจ์๋ ํน์ ์กฐ๊ฑด์ด ๋ง์กฑํ ๋๊น์ง ์๊ธฐ ์์ ์ ํธ์ถํ๋ ํจ์๋ฅผ ๋ปํ๋ค๋ ๊ฒ์ ์์๋ค. ์ฆ ์๊ธฐ๊ฐ ํธ์ถํ๊ณ ์๊ธฐ๊ฐ ์๋ตํ๋ ์ ์ด๋ค. ์ด๋ฒ ์๊ฐ์ ์ฌ๊ทํจ์์ ์กฐ๊ฑด๊ณผ ์ฌ๊ทํจ์๋ฅผ ์ ๊ทธ๋ฆฌ๊ณ ์ธ์ ์ฌ์ฉํด์ผ ํ๋์ง, ์ฌ๊ทํจ์์ ์ฃผ์์ , ๊ทธ๋ฆฌ๊ณ ๋ํ์ ์ธ ์ฌ๊ทํจ์ ์์ ์ ๋ํด ์์๋ณด์. > ์ด ๊ธ์ JavaScript ์๊ณ ๋ฆฌ์ฆ & ์๋ฃ๊ตฌ์กฐ ๋ง์คํฐํด๋์ค๋ฅผ ์ฐธ๊ณ ...
์ฌ๊ทํจ์๋ ํน์ ์กฐ๊ฑด์ด ๋ง์กฑํ ๋๊น์ง ์๊ธฐ ์์ ์ ํธ์ถํ๋ ํจ์๋ฅผ ๋งํ๋ค. ์ฌ๊ทํจ์๋ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๊น์ง ๊ณ์ ํธ์ถํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ํ์ถ ์กฐ๊ฑด์ด ํ์ํ๋ฐ, ๋ง์ฝ ์ฌ๊ท ํจ์๊ฐ ์๊ธฐ์์ ์ ๊ณ์ ํธ์ถํ๊ณ ๋ ํธ์ถํ๊ณ , ๋ ํธ์ถํ๋ค๋ฉด, ์ด๋ค์ผ์ด ์ผ์ด๋ ๊น? > ์ด ๊ธ
์ง๋ ์๊ฐ ์ฌ๊ท ํจ์๋ฅผ ์์๋ณธ ๊ฒ์ ์ด์ด, ์ด๋ฒ์ Helper ๋ฉ์๋ ์ฌ๊ท์ ์์ ์ฌ๊ท์ ๋ํด ์์๋ณด์. ํ์์ ์ธ ๊ฐ๋ ์ ์๋์ง๋ง, ์์๋๋ฉด ์ ์ฉํ ๊ฐ๋ ์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋๊ฒ ๋ค!์ด ๊ธ์ JavaScript ์๊ณ ๋ฆฌ์ฆ & ์๋ฃ๊ตฌ์กฐ ๋ง์คํฐํด๋์ค๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์์ต๋๋ค. ๋ง์ฝ
์ฝ๋ฉ ํ ์คํธ์ ๋จ๊ณจ ์๋์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ฒ๋ธ, ์ ํ, ์ฝ์ ๋ฑ ๋ฌด์ํ ๋ง์ ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ๋ค. ์๋ Gif๋ฅผ ์ดํด๋ณด๋ฉด ๋ฐ์ดํฐ๊ฐ Random์ธ์ง ํน์ ๊ฑฐ์ sorte๋๋์ง, ๋๋ Reversed๋๋์ง์ ๋ฐ๋ผ ์ต์ ํ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ ์ ์ ์๋ค.์ถ์ฒ :
์ง๋ ๋ฒ๋ธ์ ๋ ฌ(Bubble Sort)์ ์ด์ด ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ํ์ ๋ ฌ(Selection Sort)์ ๋ํด ์์๋ณด์.์ด ๊ธ์ JavaScript ์๊ณ ๋ฆฌ์ฆ & ์๋ฃ๊ตฌ์กฐ ๋ง์คํฐํด๋์ค๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์์ต๋๋ค.ํฐ ๊ฐ์ ๋ฐฐ์ด ๋์ ์์น์ํค๋ ๋ฒ๋ธ ์ ๋ ฌ๊ณผ ๋ฌ๋ฆฌ ์ ํ ์ ๋ ฌ์ ์์ ์ค
์ง๋ ์ ํ์ ๋ ฌ(Selection Sort)์ ์ด์ด ์ฝ์ ์ ๋ ฌ(Insertion Sort)์ ๋ํด ์์๋ณด์.์ด ๊ธ์ JavaScript ์๊ณ ๋ฆฌ์ฆ & ์๋ฃ๊ตฌ์กฐ ๋ง์คํฐํด๋์ค๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์์ต๋๋ค.์ฝ์ ์ ๋ ฌ์ ๊ฐ์ฅ ํฐ ์์๋ฅผ ์ฐพ์ ํ๋์ฉ ์ด๋ํ๊ฑฐ๋, ๊ฐ ๋ฃจํ๋น ๊ฐ์ฅ ์์ ์
๊ทธ๋ํ(gragh) : ์ ์ (node)๊ณผ ๊ทธ ์ ์ ์ ์ฐ๊ฒฐํ๋ ๊ฐ์ (edge)์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ๊ทธ๋ํ ํ์ : ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ํ๋์ ์ ์ ์์ ์์ํด ์ฐจ๋ก๋๋ก ๋ชจ๋ ์ ์ ์ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ ๊ฒ๊ทธ๋ํ ํ์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๊ทธ๋ํ์ ํธ๋ฆฌ์ ๊น์ ๋ถ๋ถ์ ์ฐ์ ์ ์ผ
stack์ โ์๋คโ๋ผ๋ ์๋ฏธ๋ก, Last In First Out(LIFO, ํ์ ์ ์ถ) ๊ตฌ์กฐ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค.์คํ์ ํ๋ง๊ธ์ค์ ๊ฐ์ ๊ตฌ์กฐ๋ผ๊ณ ์๊ฐํ๋ฉด ์ฝ๋ค. ์ ๊ตฌ๊ฐ ํ๋์ด๊ธฐ ๋๋ฌธ์, ๊ฐ์ฅ ๋จผ์ ์์ธ ๊ณผ์๊ฐ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋์ค๊ฒ ๋๋ค.์คํ์ ๋ํ์ ์ผ๋ก ๋จ๊ณ์ ์ผ๋ก ํจ์๋ฅผ