Algorithm
๊ทธ๋ํ ์ํ ์๊ณ ๋ฆฌ์ฆ - ๋๋น ์ฐ์ ํ์(BFS), ๊น์ด ์ฐ์ ํ์(DFS)
๊ทธ๋ํ(Graph)๋ ธ๋(N, node)์ ๊ทธ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ (E, edge)์ ํ๋๋ก ๋ชจ์ ๋์ ๋น์ ํ ์๋ฃ ๊ตฌ์กฐ.๋น์ ํ ์๋ฃ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ ฌ๋ก ๊ตฌ์ฑํ์ง ์๊ณ , ์๋ฃ ์์๋ ๊ด๊ณ๊ฐ ๋ณต์กํ ์๋ฃ ๊ตฌ์กฐ๋ ธ๋(
f1rstf1y9.tistory.com
๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ๊ณผ ๊ทธ๋ํ ์ต๋จ ๊ฑฐ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์ ๋ฆฌํ๋ ค๋ค๊ฐ ์ด์ ์ ์์ฑํด๋ ๊ทธ๋ํ ์ํ ์๊ณ ๋ฆฌ์ฆ ํฌ์คํธ๋ฅผ ๋ค์ ์ฝ์ด๋ณด์๋๋ฐ, ๋ถ์กฑํ๊ฑฐ๋ ๋ชจํธํ ์ค๋ช ์ด ์์ด์ ๋ค์ ํ๋ฒ ๋ฆฌ๋ง์ธ๋ํ ๊ฒธ ๊ธ์ ์ผ๋ถ ์์ ํ๋ค.
์ฌ์ค BFS, DFS๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ ๋ ์๋ ๋ง์ด ์ผ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค๋ณด๋, ๊ทธ๋ฅ ์ ๊ทธ๋ํ ํ์ ํด์ผํ๋๊ตฌ๋ ํ๋ฉด ๋ฌด์์์ ์ผ๋ก ์ด๋ฏธ ๊ณต์ ๋ง๋ฅ ์๊ธฐ๊ฐ ๋ ์๊ณ ๋ฆฌ์ฆ ์ฝ๋๋ฅผ ๊น์ ์๊ฐ ์์ด ์์ฑํ ์ ์ด ๋ง์๋ ๊ฒ ๊ฐ๋ค.
ํฌ์คํ ์ ์์ ํ๋ฉด์ BFS, DFS์ ๊ทธ๋ํ ํ์ ๊ณผ์ ๊ณผ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ค์ ํ ๋ฒ ์ดํด๋ณด์๋ค. BFS๋ ๊ฐ์ ๊น์ด์ ์์นํ ๋ชจ๋ ๋ ธ๋๋ฅผ ์ฐพ์ ๋, ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ์์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ๋ ์ ์ฉํ๋ค. DFS๋ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ผ ํ ๋, ๋ฐฑํธ๋ํน์ด ํ์ํ ๋ ์ ์ฉํ๋ค.
JavaScript
[JavaScript] ํจ์์ ์ผ๊ธ ๊ฐ์ฒด
์ผ๊ธ ๊ฐ์ฒด์ผ๊ธ ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ ๋ค ๊ฐ์ง ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.๋ฌด๋ช ์ ๋ฆฌํฐ๋ด๋ก ์์ฑํ ์ ์๋ค. ์ฆ, ๋ฐํ์์ ์์ฑ์ด ๊ฐ๋ฅํ๋ค.๋ณ์๋ ์๋ฃ๊ตฌ์กฐ(๊ฐ์ฒด, ๋ฐฐ์ด)์ ์ ์ฅํ ์ ์๋ค
f1rstf1y9.tistory.com
์ด๋ฒ์๋ ํจ์๊ฐ ์ ์ผ๊ธ ๊ฐ์ฒด๊ฐ ๋ ์ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด์๋ ์๋ ํจ์๋ง์ ํ๋กํผํฐ๋ ๋ฌด์์ด ์๋์ง ์์๋ณด์๋ค.
์ผ๊ธ ๊ฐ์ฒด๊ฐ ๋๊ธฐ ์ํ ์กฐ๊ฑด์ ๋ค ๊ฐ์ง๋ก, ๋ฌด๋ช ์ ๋ฆฌํฐ๋ด๋ก ์์ฑํ ์ ์์ด์ผํ๊ณ , ๋ณ์๋ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ํจ์์ ์ธ์๋ก ์ ๋ฌ๋ ์ ์๊ณ , ํจ์์ ๋ฐํ๊ฐ์ด ๋ ์ ์์ด์ผ ํ๋ค. ํจ์๋ ๋ชจ๋ ์กฐ๊ฑด์ ๋ง์กฑํ๊ธฐ์ ์ผ๊ธ๊ฐ์ฒด๋ผ๊ณ ํ ์ ์๋ค.
ํจ์๊ฐ ์ผ๊ธ ๊ฐ์ฒด๋ผ๋ ๊ฒ์ ํจ์๋ ๊ฐ์ฒด๋ผ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ํจ์๋ง ๊ฐ์ง ํ๋กํผํฐ๊ฐ ์๋ค. ํจ์ ๊ณ ์ ์ ํ๋กํผํฐ๋ก๋ arguments, name, caller, length, prototype์ด ์๋ค. ์ด๋, prototype์ ์์ฑ์ ํจ์๋ก ํธ์ถํ ์ ์๋ ํจ์, ์ฆ constructor๋ง์ด ํด๋น ํ๋กํผํฐ๋ฅผ ๊ฐ๋๋ค.
์์ ์๋ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ์์ console.dir์ ํจ์๋ฅผ ์ธ์๋ก ์ ๋ฌํด ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๋ฉด __proto__๋ ํจ๊ป ํ์๋์๋๋ฐ, __proto__๋ ํจ์ ๊ณ ์ ์ ํ๋กํผํฐ๊ฐ ์๋ Object.prototype๋ก๋ถํฐ ์์๋ฐ์ ๊ฒ์ด๋ค. ์ ์ด์ __proto__๋ deprecated๋ก ์ฌ์ฉ์ด ๊ถ์ฅ๋์ง ์๊ธฐ๋ ํ๊ณ , ๊ฐ๋ฐ์๋ค์ด ๋ณด๊ธฐ์ __proto__๊ฐ ํจ์ ๊ฐ์ฒด ๊ณ ์ ์ ํ๋กํผํฐ๋ก ์ฐฉ๊ฐํ๊ธฐ ์ฌ์์ ์ง๊ธ์ __proto__ ๋์ ์ค์ ๋ก __proto__๊ฐ ๊ฐ๋ฆฌํค๊ณ ์๋ ๋ด๋ถ ์ฌ๋กฏ [[Prototype]]์ ํ์ํ๋ค.
์ฑ ์์๋ ํจ์์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ ์ฝ์์ฐฝ ์บก์ณ๋ณธ์ __proto__๊ฐ ๋จ๋๋ฐ, ๋๋ ์๋ฌด๋ฆฌ ์ฐพ์๋ด๋ ์ฝ์์ __proto__๊ฐ ์๋์์ ๊ทธ ์ด์ ๋ฅผ ํ์ฐธ์ ์ฐพ์ํค๋งธ๋ค๐
๋์๋ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ ํฅ์ฐ...
์ด์จ๋ ๊ฒฐ๋ก ์ ์ผ๋ก ์์ ๋งํ๋ฏ์ด "__proto__๋ ๊ฐ์ฒด ์์ ์ ๊ณ ์ ํ๋กํผํฐ๊ฐ ์๋๋ผ ์์ ๋ฐ์ ๊ฑด๋ฐ ์ ๊ฐ์ฒด ๋ก๊ทธ์ ํ์๋จ? ์ด๊ฑฐ ๋ฒ๊ทธ๋ค!"๋ผ๊ณ ๋ณด๊ณ ๊ฐ ๋์ด์ "ใ ใ ใ ใ ํท๊ฐ๋ฆด๋งํ๋ค ์ค๊ฐ ์๋ ๊ฐ๋ฆฌํค๋ [[Prototype]]์ ํ์ํ๋๊ฒ ๋ง๊ฒ ๋ค"ํ๊ณ ์์ ์ด ๋์ด์ ์ด์ __proto__๋ฅผ ๋ณผ ์ ์๊ฒ ๋ ๊ฒ์ด์๋ค.
์ด ๋ด์ฉ์ ์ฐพ์๋ณด๋ฉด์ ํฌ๋ก๋ฏธ์ ๊ด๋ จ ํ๋ก์ ํธ์ ์ฌ๋ฌ ๋ฒ๊ทธ, ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฑ์ ๋ณด๊ณ ํ๊ณ ์ด์๋ฅผ ๊ด๋ฆฌํ๋ ์ฌ์ดํธ๋ฅผ ์ฒ์ ๋ฐฉ๋ฌธํด๋ด์ ํฅ๋ฏธ๋ก์ ๋ค!
TMI
์ ๋ด์ฉ๊น์ง๊ฐ 18์ผ์ TIL์ด์๊ณ .. 19์ผ์ ๋ด ์์ผ์ด๊ธฐ ๋๋ฌธ์ ์ง๋ํ๊ฒ ๋์์คฌ๋ค^__^
์ค๋๋ง์ ๊ฐ๋ฐ ๊ด๋ จ ๊ณต๋ถ๋ฅผ ์ผ์ ํ์ง ์์ ํ๋ฃจ ใ <-< ๋์ ์ถ์ต ์ฌํ์ ์๋ฉ ํ๊ณ ์๋ค!
์์ฐจ๋ค ์์ฐจ!