๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
-
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
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋คํธ์ํฌ
๋คํธ์ํฌ๋ ์ปดํจํฐ ์ํธ ๊ฐ์ ์ ๋ณด๋ฅผ ๊ตํํ ์ ์๋๋ก ์ฐ๊ฒฐ๋ ํํ๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ปดํจํฐ A์ ์ปดํจํฐ B๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์๊ณ , ์ปดํจํฐ B์ ์ปดํจํฐ C๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๏ฟฝ๏ฟฝ
programmers.co.kr
๋ฐ์ํ