๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
-
Lv3 | DFS
- ๋ช๊ฐ์ ์ธ์ดํด์ด ์๋ ์ง ์ฐพ์์ผ ํ๋ค.
- DFS(BFS)๋ฅผ ์ด์ฉํด๋ ๋ฌด๋ฐฉํ๋ค.
- ์ ์ฒด ๋คํธ์ํฌ ์ค ํ๋๋ฅผ ์ฐจ๋ก๋ก ์ ํํ๋ค.
- DFS๋ก visited๋ฅผ ์ฒดํฌํ๋ฉฐ ๋๋ฆฐ๋ค.
- DFS๊ฐ ๋๋๋ฉด ๊ทธ๊ฒ ํ ์ธ์ดํด์ด ๋๋ค. (๋คํธ์ํฌ์ ์)
- ์์ง ๋ฐฉ๋ฌธํ์ง ์์ ๋๋จธ์ง ๋คํธ์ํฌ๋ฅผ ํ๋์ฉ ์ฐจ๋ก๋ก ์ ํํ๋ฉด์ ์์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
๐ป์์ค ์ฝ๋
function solution(n, computers) {
var answer = 0;
let visited = Array(n).fill(0)
let stack = []
for (let i = 0; i < n; i++) {
if (visited[i] == 0) {
stack.push(i)
visited[i] = 1
while (stack.length > 0) {
let c = stack.shift()
for (let j in computers[c]) {
if (computers[c][j] == 1 && visited[j] == 0) {
stack.push(j)
visited[j] = 1
}
}
}
answer++
}
}
return answer;
}
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค
๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/43162
๋ฐ์ํ