|
์ฝ๋ ์์ฑํ๊ธฐ
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
bool check[205]; //๋ฐฉ๋ฌธ์ฌ๋ถ ์ฒดํฌ ๋ฐฐ์ด
queue<int>q;
int n;
void bfs(int n, vector<vector<int>>computers) {
while (!q.empty()) { //bfs์ฝ๋
int now = q.front();
q.pop();
for (int i = 0; i < n; i++) {
int next = i;
if (!check[next] && computers[now][next]) {
//next๋ฅผ ๋ฐฉ๋ฌธํ์ง ์์๊ณ , now์ next๊ฐ ์ฐ๊ฒฐ๋์ด ์๋ค๋ฉด
check[next] = 1;
q.push(next);
}
}
}
}
int solution(int n, vector<vector<int>> computers) {
int answer = 0;
for (int i = 0; i < n; i++) {
if (!check[i]) { //i๋ฒ์ ๋ฐฉ๋ฌธํ์ง ์์๋ค๋ฉด
answer++;
check[i] = 1; //๋ฐฉ๋ฌธ์ฒดํฌ
q.push(i); //q์ ๋ฃ๊ณ bfs ์์
bfs(n, computers);
}
}
return answer;
}
C++
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
์ธ์ ํ๋ ฌ ํํ๋ก ์ฃผ์ด์ง ๊ทธ๋ํ์ ์ฐ๊ฒฐ ์ฑ๋ถ์ ๊ฐ์๋ฅผ returnํ๋ ๋ฌธ์ ์ด๋ค.
0๋ถํฐ n-1๊น์ง BFSํน์ DFS๋ก ํ์ํ์ฌ ์ฐ๊ฒฐ๋์ด ์๋ ๋
ธ๋๋ค์ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ณ ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋๋ค๋ถํฐ ๋ค์ ํ์ํ๋ฉด ๋๋ ๋ฌธ์ !
DFS์ BFS์ ๋ํ ์ ๋ฆฌ