๋ฌธ์
์ ์ข ๋ฐ์ด๋ฌ์ค์ธ ์ ๋ฐ์ด๋ฌ์ค๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ํ๋๋ค. ํ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๋ฉด ๊ทธ ์ปดํจํฐ์ ๋คํธ์ํฌ ์์์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ชจ๋ ์ปดํจํฐ๋ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
์๋ฅผ ๋ค์ด 7๋์ ์ปดํจํฐ๊ฐ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด ๋คํธ์ํฌ ์์์ ์ฐ๊ฒฐ๋์ด ์๋ค๊ณ ํ์. 1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๋ฉด ์ ๋ฐ์ด๋ฌ์ค๋ 2๋ฒ๊ณผ 5๋ฒ ์ปดํจํฐ๋ฅผ ๊ฑฐ์ณ 3๋ฒ๊ณผ 6๋ฒ ์ปดํจํฐ๊น์ง ์ ํ๋์ด 2, 3, 5, 6 ๋ค ๋์ ์ปดํจํฐ๋ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ํ์ง๋ง 4๋ฒ๊ณผ 7๋ฒ ์ปดํจํฐ๋ 1๋ฒ ์ปดํจํฐ์ ๋คํธ์ํฌ์์์ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ์ํฅ์ ๋ฐ์ง ์๋๋ค.
์ด๋ ๋ 1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ ธ๋ค. ์ปดํจํฐ์ ์์ ๋คํธ์ํฌ ์์์ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ ์ ๋ณด๊ฐ ์ฃผ์ด์ง ๋, 1๋ฒ ์ปดํจํฐ๋ฅผ ํตํด ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ ์ปดํจํฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ์ปดํจํฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ปดํจํฐ์ ์๋ 100 ์ดํ์ด๊ณ ๊ฐ ์ปดํจํฐ์๋ 1๋ฒ๋ถํฐ ์ฐจ๋ก๋๋ก ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๋ค. ๋์งธ ์ค์๋ ๋คํธ์ํฌ ์์์ ์ง์ ์ฐ๊ฒฐ๋์ด ์๋ ์ปดํจํฐ ์์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด์ด์ ๊ทธ ์๋งํผ ํ ์ค์ ํ ์์ฉ ๋คํธ์ํฌ ์์์ ์ง์ ์ฐ๊ฒฐ๋์ด ์๋ ์ปดํจํฐ์ ๋ฒํธ ์์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ ธ์ ๋, 1๋ฒ ์ปดํจํฐ๋ฅผ ํตํด ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ ์ปดํจํฐ์ ์๋ฅผ ์ฒซ์งธ ์ค์ ์ถ๋ ฅํ๋ค.
ํ์ด
BFS๋ฅผ ์ด์ฉํ ๋ฌธ์ ์ด๋ค. 1๋ฒ ์ปดํจํฐ๋ฅผ ์์ ๋ ธ๋๋ก ์ ํด์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
1๋ฒ ์ปดํจํฐ๋ฅผ ์ ์ธํ ๋๋จธ์ง ๊ฐ์ผ ์ปดํจํฐ๋ค์ ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ฏ๋ก ๋ฐ๋ณต๋ฌธ ์์ cnt++ ๋ฌธ์ ๋ฃ์ด์ฃผ์๋ค.
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
#define MAX 101
vector<int> graph[MAX]; // ์ธ์ ๋
ธ๋ ๊ทธ๋ํ
bool isVisited[MAX] = {false, }; // ๋ฐฉ๋ฌธ ์ฌ๋ถ
queue<int> q;
int cnt = 0;
void BFS(int v){
q.push(v);
isVisited[v] = true;
while(!q.empty()){
int cur = q.front();
q.pop();
for (int i=0; i<graph[cur].size(); i++){
int next = graph[cur][i];
if (!isVisited[next]){
q.push(next);
isVisited[next] = true;
cnt++;
}
}
}
}
int main(){
int N, M;
cin >> N >> M;
for (int i=0; i<M; i++){
int u, v;
cin >> u >> v;
graph[u].push_back(v);
graph[v].push_back(u);
}
for (int i=0; i<MAX; i++){
sort(graph[i].begin(), graph[i].end());
}
BFS(1);
cout << cnt;
}
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 2798๋ฒ : ๋ธ๋์ญ (0) | 2021.08.27 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/C++] ๋คํธ์ํฌ (0) | 2021.08.24 |
[๋ฐฑ์ค/C++] 10870๋ฒ : ํผ๋ณด๋์น ์ 5 (0) | 2021.08.24 |
[๋ฐฑ์ค/C++] 10872๋ฒ : ํฉํ ๋ฆฌ์ผ (0) | 2021.08.24 |
[๋ฐฑ์ค/C++] 1260๋ฒ : DFS์ BFS (0) | 2021.08.24 |
๋๊ธ