(λ°±μ€/c++) 11724 - μ°κ²° μμμ κ°μ / BFS, κ·Έλνπ coding test/β½ λ°±μ€2024. 8. 16. 16:17
Table of Contents
728x90
λ°μν
"(λ°±μ€/c++) 11724 - μ°κ²° μμμ κ°μ / BFS, κ·Έλν"
https://www.acmicpc.net/problem/11724
π solved.ac λμ΄λ: μ€λ²2
λμ΄λλ μ¬μ λ€. DFS, BFS μ무거λ 골λΌμ νμ μλ λ¬Έμ μ΄λ€.
νμ§λ§~ λλ 5λ² μ λ νλ Έλ€.
μ΄μ λ λ°©ν₯μ±μ΄ μλ κ·ΈλνμΈλ° λ°©ν₯μ±μ΄ μκ² ν μͺ½λ§ μ λ ₯ν΄μ£Όκ³ μμλ€. γ γ
λ°©ν₯μ±μ΄ μλ κ·ΈλνλΌλ©΄ κΌ μ μ μμͺ½μ λΉκ΅ν μ μλλ‘ ν΄μ£Όμ.
// μ°κ²° μμμ κ°μ
#include<iostream>
#include<queue>
#include<vector>
using namespace std;
bool visit[1001] = { false, };
vector<int> distributingLine[1001];
queue<int> que;
int main(void)
{
int N, M;
cin >> N >> M;
for (int i = 0; i < M; ++i)
{
int u, v;
cin >> u >> v;
distributingLine[u].push_back(v);
distributingLine[v].push_back(u);
}
int count = 0;
for (int i = 1; i <= N; ++i)
{
if (visit[i])
{
continue;
}
que.push(i);
visit[i] = true;
//bool check = false;
count++;
while (!que.empty())
{
int temp = que.front();
//visit[temp] = true;
que.pop();
for (int j = 0; j < distributingLine[temp].size(); ++j)
{
if (visit[distributingLine[temp][j]] == false)
{
visit[distributingLine[temp][j]] = true;
que.push(distributingLine[temp][j]);
//check = true;
}
}
}
//if (check)
//{
//}
}
cout << count;
return 0;
}
728x90
λ°μν
'π coding test > β½ λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
(λ°±μ€/c++) 10026 - μ λ‘μμ½ / BFS, κ·Έλν (0) | 2024.08.20 |
---|---|
(λ°±μ€/c++) 11403 - κ²½λ‘μ°ΎκΈ° / BFS, κ·Έλν (0) | 2024.08.16 |
(λ°±μ€/c++) 14940 - μ¬μ΄ μ΅λ¨ 거리 / DFS, κ·Έλν (0) | 2024.08.16 |
(λ°±μ€/ C++) 12101- 1, 2, 3 λνκΈ°2 / λ€μ΄λλ―Ή νλ‘κ·Έλλ°, μ¬κ· (0) | 2024.07.19 |
(λ°±μ€/ C++) 1010 - λ€λ¦¬ λκΈ° / λ€μ΄λλ―Ή νλ‘κ·Έλλ°, μ¬κ· (0) | 2024.07.19 |
@DoctorSunAhna :: νν¬μ½λ₯
μ νλ κ² λ³΄λ€ λ«κ² μ§
ν¬μ€ν μ΄ μ’μλ€λ©΄ "μ’μμβ€οΈ" λλ "ꡬλ ππ»" ν΄μ£ΌμΈμ!