-
๋ฌธ์ 72. ๋๋น ์ฐ์ ํ์๐ง codingtest/javascript 100์ 2022. 4. 9. 08:56728x90
"๋๋น์ฐ์ ํ์" ์ด๋?
- ์ด๋ค ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ํ์ธํ ํ, ๋ชฉํํ ๋ ธ๋๊ฐ ์๋๋ฉด ๊ทธ ๋ ธ๋์ ์ฐ๊ฒฐ๋ ์ ์ ๋ค ์ค์์ ์ฐ์ ์์๊ฐ ๋์ผํ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ์ฐพ๊ณ ๊ทธ ์์์ ์์ผ๋ฉด ๊ทธ ๋ค์ ์์๋ ธ๋๋ฅผ ์ฐจ๋ก๋๋ก ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค.(๊น์ด์ฐ์ ํ์์ ์ฐ์ฅ์ )
// ๋ฐ์ดํฐ graph = { E: ["D", "A"], F: ["D"], A: ["E", "C", "B"], B: ["A"], C: ["A"], D: ["E", "F"], }; // ์ถ๋ ฅ E D A F C B
๋ฏธ๋ฆฌ ์๊ฐํด ๋ด์ผํ ๊ฒ
- ์์, ๊ฐ์ฒด์ ๊ทผ๋ฐฉ์(ํค๊ฐ, ๋ฒจ๋ฅ๊ฐ ์ถ์ถ๋ฐฉ์)
๋ต
let graph = { E: ["D", "A"], F: ["D"], A: ["E", "C", "B"], B: ["A"], C: ["A"], D: ["E", "F"], }; function dfs(graph, start) { let visited = []; let queue = [start]; while (queue.length != 0) { let n = queue.shift(); // queue ์ ๋งจ ์์ ์์๋ง ์ถ์ถํจ(๊น์ด ํ์๊ณผ ์ ์ผํ๊ฒ ๋ค๋ฅธ ๋ถ๋ถ) // console.log(n) if (!visited.includes(n)) { visited.push(n); let sub = graph[n].filter((x) => !visited.includes(x)); for (let i of sub) { queue.push(i); } } } return visited; } console.log(dfs(graph, "E"));
'๐ง codingtest > javascript 100์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฌธ์ 74. ์ต์ฅ ๊ฒฝ๋ก ์ฐพ๊ธฐ (0) 2022.04.13 ๋ฌธ์ 73. ์ต๋จ ๊ฒฝ๋ก ์ฐพ๊ธฐ (0) 2022.04.12 ๋ฌธ์ 71. ๊น์ด ์ฐ์ ํ์ (0) 2022.04.09 ๋ฌธ์ 70. ํ๋ ฌ ๊ณฑํ๊ธฐ (0) 2022.04.06 ๋ฌธ์ 69. ๊ณจ๋๋ฐํ์ ์ถ์ธก (0) 2022.04.04