๐ป
[๋ฐฑ์ค] ๋ค์ต์คํธ๋ผ - 6118. ์จ๋ฐ๊ผญ์ง(๋ฌธ์ ํธ๋์ค) ๋ณธ๋ฌธ
[๋ฐฑ์ค] ๋ค์ต์คํธ๋ผ - 6118. ์จ๋ฐ๊ผญ์ง(๋ฌธ์ ํธ๋์ค)
๋ํจ๋ 2020. 3. 4. 00:22๋ฌธ์
์ฌ์๊ธฐ๋ ์ํ๋์ ๊ต์ธ ๋์ฅ์์ ์จ๋ฐ๊ผญ์ง์ ํ๊ณ ์๋ค. ๋์ฅ์๋ ํ๊ฐ์ด ๋ง์ด ๋๋ ค์๊ณ ์ฌ์๊ธฐ๋ ๊ทธ ์ค์ ํ๋์ ์จ์ด์ผ ํ๋ค. ํ๊ฐ์ ๊ฐ์๋ N(2 <= N <= 20,000)๊ฐ์ด๋ฉฐ, 1 ๋ถํฐ ์๋ค๊ณ ํ์.
์ฌ์๊ธฐ๋ ์ํ๋๊ฐ 1๋ฒ ํ๊ฐ๋ถํฐ ์ฐพ์ ๊ฒ์ ์๊ณ ์๋ค. ๋ชจ๋ ํ๊ฐ์ M(1<= M <= 50,000)๊ฐ์ ์๋ฐฉํฅ ๊ธธ๋ก ์ด์ด์ ธ ์๊ณ , ๊ทธ ์ ๋์ A_i ์ B_i(1<= A_i <= N; 1 <= B_i <= N; A_i != B_i)๋ก ๋ํ๋ธ๋ค. ๋ํ ์ด๋ค ํ๊ฐ์์ ๋ค๋ฅธ ํ๊ฐ์ผ๋ก๋ ์ธ์ ๋ ๋๋ฌ ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํด๋ ์ข๋ค.
์ฌ์๊ธฐ๋ ๋ฐ๋์๊ฐ ์ง๋ ํ๊ธฐ ๋๋ฌธ์ ์ต๋ํ ๋์๊ฐ ์๋๊ฒ ์จ์ ์ฅ์๋ฅผ ์ฐพ๊ณ ์ ํ๋ค. ๋์๋ 1๋ฒ ํ๊ฐ์์์ ๊ฑฐ๋ฆฌ(์ฌ๊ธฐ์ ๊ฑฐ๋ฆฌ๋ผ ํจ์ ์ง๋์ผ ํ๋ ๊ธธ์ ์ต์ ๊ฐ์์ด๋ค)๊ฐ ๋ฉ์ด์ง์๋ก ๊ฐ์ํ๋ค๊ณ ํ๋ค. ์ฌ์๊ธฐ์ ๋ฐ๋์๋ฅผ ์ต๋ํ ์จ๊ธธ ์ ์๋ ํ๊ฐ์ ์ฐพ์ ์ ์๊ฒ ๋์์ฃผ์!
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์๋ N๊ณผ M์ด ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค.
์ดํ M์ค์ ๊ฑธ์ณ์ A_i์ B_i๊ฐ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ถ๋ ฅ์ ํ์ค๋ก ์ด๋ฃจ์ด์ง๋ฉฐ, ์ธ ๊ฐ์ ๊ฐ์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ์ง์ด ์ถ๋ ฅํด์ผํ๋ค.
์ฒซ ๋ฒ์งธ๋ ์จ์ด์ผ ํ๋ ํ๊ฐ ๋ฒํธ๋ฅผ(๋ง์ฝ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ ํ๊ฐ์ด ์ฌ๋ฌ๊ฐ๋ฉด ๊ฐ์ฅ ์์ ํ๊ฐ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ค), ๋ ๋ฒ์งธ๋ ๊ทธ ํ๊ฐ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ, ์ธ ๋ฒ์งธ๋ ๊ทธ ํ๊ฐ๊ณผ ๊ฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๋ ํ๊ฐ์ ๊ฐ์๋ฅผ ์ถ๋ ฅํด์ผํ๋ค.
์์ ์ ๋ ฅ1
6 7
3 6
4 3
3 2
1 3
1 2
2 4
5 2
์์ ์ถ๋ ฅ1
4 2 3
ํํธ
๋์ฅ์ ์กฐ๊ฐ๋๋ ์๋์ ๊ฐ๋ค.
1--2--5
| /|
|/ |
3--4
|
6
ํ๊ฐ 4, 5, 6์ ๋ชจ๋ 2์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ์ง๋ค. ์ฌ๊ธฐ์ 4๋ฒ ํ๊ฐ์ ์ ํํ๋ ์ด์ ๋ ํ๊ฐ์ ๋ฒํธ๊ฐ ๊ฐ์ฅ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์๊ฐ
์์ฑํ ์ฝ๋
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
int n, m;
int dist[20001];
vector<vector<int>> v;
queue<int> q;
int main(int argc, const char * argv[]) {
// insert code here...
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m;
v.resize(n);
for(int i=0; i<m; i++){
int x, y;
cin >> x >> y ;
v[x-1].push_back(y-1);
v[y-1].push_back(x-1);
}
q.push(0);
while(!q.empty()){
int cur = q.front();
q.pop();
for(int i=0; i<v[cur].size(); i++){
int next = v[cur][i];
if(dist[next] == 0){
dist[next] = dist[cur] + 1;
q.push(next);
}
}
}
int max = 1;
for(int i=2; i<n; i++){
if(dist[max] == dist[i]){
max = i;
}
}
int cnt = 0;
for(int i=1; i<n; i++){
if(dist[max] == dist[i]){
cnt ++;
}
}
cout << max+1 << ' ' << dist[max] << ' ' << cnt << '\n';
return 0;
}
'์๊ณ ๋ฆฌ์ฆ > ๋ฌธ์ ํ์ด Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ๋ฌธ์์ด์ฒ๋ฆฌ - 10808. ์ํ๋ฒณ ๊ฐ์ (0) | 2020.03.08 |
---|---|
[๋ฐฑ์ค] ๋ฌธ์์ด์ฒ๋ฆฌ - 9935. ๋ฌธ์์ด ํญ๋ฐ (0) | 2020.03.05 |
[๋ฐฑ์ค] ๋ธ๋ฃจํธํฌ์ค - 1018. ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (0) | 2020.03.01 |
[๋ฐฑ์ค] DFS์BFS - 11403. ๊ฒฝ๋ก ์ฐพ๊ธฐ (0) | 2020.03.01 |
[๋ฐฑ์ค] DFS์BFS - 1260.DFS์ BFS (0) | 2020.03.01 |