Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- OS
- ๊ตฌํ
- ๋์ ํฉ
- error
- thymeleaf
- ์์ ์ ๋ ฌ
- ๋งต
- dfs
- ์ฌ๊ท
- web
- c++
- ๋ถํ ์ ๋ณต
- GCP
- Spring
- ์คํ
- ์ด๋ถ ํ์
- JPA
- BFS
- ๋ฐฑํธ๋ํน
- ๊ทธ๋ฆฌ๋
- dynamic debugging
- DP
- ๋ฐ์ดํฌ์คํธ๋ผ
- ๋ฌธ์์ด
- ์ฐ์ ์์ ํ
- Reversing
- java
- ์๋ฎฌ๋ ์ด์
- ์ต๋จ ๊ฒฝ๋ก
- CVE
Archives
- Today
- Total
hades
[Baekjoon] 11724๋ฒ: ์ฐ๊ฒฐ ์์์ ๊ฐ์ ๋ณธ๋ฌธ
๐ฅ ๋ฌธ์
https://www.acmicpc.net/problem/11724
๐ ์ค๊ณ
์๋ก์ ์งํฉ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ๋ ๊ฒ๋ค๋ผ๋ฆฌ ๊ทธ๋ฃน์ ํ์ฑํ๊ฒ ํ๋ค.
๊ทธ๋ฃน์ ์๋ ๋งจ ๊ผญ๋๊ธฐ์ ์๋ ์กฐ์์ ์์ด๋ค.
๋ฌธ์ ์ ๋ ฅ ์์์ ๋ฐ๋ผ parent[x]๊ฐ ๋งจ ๊ผญ๋๊ธฐ ์กฐ์์ด ์๋ ์ ์์ผ๋ฏ๋ก, find_parent(x)๋ก ๋งจ ๊ผญ๋๊ธฐ ์กฐ์์ ์งํฉ์ ์ฝ์ ํ๋ค.
BFS๋ก ๋ฐฉ๋ฌธ์ฒ๋ฆฌ๋ฅผ ํ์ฌ ์์ญ์ ๊ฐ์๋ฅผ ๊ตฌํ์ฌ ํด๊ฒฐํ ์๋ ์๋ค.
๐ ํ์ด1
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
int n, m, u, v;
vector<int> parent(1001);
set<int> result;
int find_parent(int x) {
if (parent[x] != x) {
return find_parent(parent[x]);
}
return parent[x];
}
void union_parent(int a, int b) {
a = find_parent(a);
b = find_parent(b);
if (a < b) {
parent[b] = a;
}
else {
parent[a] = b;
}
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
parent[i] = i;
}
for (int i = 0; i < m; i++) {
cin >> u >> v;
union_parent(u, v);
}
for (int i = 1; i <= n; i++) {
result.insert(find_parent(i));
}
cout << result.size() << "\n";
return 0;
}
๐ ํ์ด2
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
int n, m, u, v, result = 0;
vector<int> visited(1001);
vector<vector<int>> adj_list(1001);
void bfs(int start) {
visited[start] = true;
queue<int> q;
q.push(start);
while (!q.empty()) {
int cur = q.front();
q.pop();
int size = adj_list[cur].size();
for (int i = 0; i < size; i++) {
int next = adj_list[cur][i];
if (!visited[next]) {
visited[next] = true;
q.push(next);
}
}
}
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
for (int i = 0; i < m; i++) {
cin >> u >> v;
adj_list[u].push_back(v);
adj_list[v].push_back(u);
}
for (int i = 1; i <= n; i++) {
if (!visited[i]) {
result += 1;
bfs(i);
}
}
cout << result << "\n";
return 0;
}
'๐ PS > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 14500๋ฒ: ํ ํธ๋ก๋ฏธ๋ ธ (1) | 2024.07.26 |
---|---|
[Baekjoon] 11726๋ฒ: 2xn ํ์ผ๋ง (0) | 2024.07.26 |
[Baekjoon] 11659๋ฒ: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ (0) | 2024.07.25 |
[Baekjoon] 11403๋ฒ: ๊ฒฝ๋ก ์ฐพ๊ธฐ (0) | 2024.07.25 |
[Baekjoon] 11399๋ฒ: ATM (0) | 2024.07.24 |