Search
๐Ÿป

๊น€๊ธฐํ—Œ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
900
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
#include<string> #include<vector> #include<queue> #include<iostream> #include<algorithm> using namespace std; vector<vector<int>>v; queue<int>q; int maxi, answer; int dist[20005]; void bfs() { //bfs ์‹œ์ž‘ while (!q.empty()) { //q๊ฐ€ ๋นŒ ๋•Œ ๊นŒ์ง€ int now = q.front(); q.pop(); for (int i = 0; i < v[now].size(); i++) {//now์—์„œ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค ๋ฐฉ๋ฌธํ•˜๊ธฐ int next = v[now][i]; if (!dist[next]) { //next๊ฐ€ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ์•ˆ๋˜์–ด ์žˆ๋‹ค๋ฉด dist[next] = dist[now] + 1; //now๋ณด๋‹ค 1์นธ ๋ฉ€๋ฆฌ ์žˆ์œผ๋ฏ€๋กœ dist[now] + 1 q.push(next); maxi = max(maxi, dist[next]); //๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ•˜๋ฉด์„œ 1๋ฒˆ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ์ œ์ผ ๋ฉ€๋ฆฌ์žˆ๋Š”๊ฐ’ ๊ณ„์† ๊ฐฑ์‹  } } } } int solution(int n, vector<vector<int>> edge) { v.resize(n + 1); for (int i = 0; i < edge.size(); i++) { //๊ฐ„์„ ์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•œ ๊ทธ๋ž˜ํ”„ ๋งŒ๋“ค๊ธฐ for (int j = 0; j < 2; j++) { int a = edge[i][0], b = edge[i][1]; v[a].push_back(b); //์–‘๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์ด๊ธฐ ๋•Œ๋ฌธ์— ์–‘์ชฝ ์—ฐ๊ฒฐ v[b].push_back(a); } } dist[1] = 1; //์‹œ์ž‘์ ์ด 1๋ฒˆ์ด๊ธฐ์— ๋ฐฉ๋ฌธ์ฒดํฌ ๋ฐ queue์— ์ถ”๊ฐ€ q.push(1); bfs(); for (int i = 1; i <= n; i++) if (dist[i] == maxi) answer++; //์ตœ๋Œ€๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ๋…ธ๋“œ ๊ฐœ์ˆ˜ ์ฐพ๊ธฐ return answer; }
C++
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๋ฌธ์ œ๋กœ BFS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ
: DFS์™€ BFS์— ๋Œ€ํ•œ ์ •๋ฆฌ
์ฃผ์–ด์ง„ edge์˜ ์ •๋ณด๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ , ์‹œ์ž‘ ๋…ธ๋“œ์ธ 1๋ฒˆ ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰ ์‹œ์ž‘
dist๋ฐฐ์—ด: ๋ฐฉ๋ฌธ ์—ฌ๋ถ€ ํ™•์ธ + 1๋ถ€ํ„ฐ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ๋ก
โ€ข
๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์˜ˆ์‹œ
โ€ข
1๋ฒˆ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋Š” 2, 3๋ฒˆ์ด๊ธฐ์— dist[2]์™€ dist[3]์˜ ๊ฐ’์€ 1๋ฒˆ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ +1 ์ด๋ฏ€๋กœ
dist[2]= dist[3] = dist[1]+1(=2) โ†’ ์ด ๋•Œ 1๋ฒˆ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๊ฐ€์žฅ ๋จผ ๊ฑฐ๋ฆฌ์ธ ๊ฐ’ maxi = dist[2] = dist[3] โ†’ 2
โ€ข
2๋ฒˆ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ๋œ 4, 5๋ฒˆ ๋…ธ๋“œ๋Š” ์‹œ์ž‘์ ์œผ๋กœ๋ถ€ํ„ฐ ๊ฑฐ๋ฆฌ๊ฐ€ dist[2] + 1 โ†’ maxi = dist[4] = dist[5] โ†’ 3
โ€ข
3๋ฒˆ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ๋œ 6๋ฒˆ ๋…ธ๋“œ๋Š” ์‹œ์ž‘์ ์œผ๋กœ๋ถ€ํ„ฐ ๊ฑฐ๋ฆฌ๊ฐ€ dist[3] + 1 โ†’ maxi๊ฐ’ ๋ณ€๋™ X
โ€ข
๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ํ›„ dist๋ฐฐ์—ด์˜ 1๋ฒˆ ~ n๋ฒˆ ์ธ๋ฑ์Šค๊นŒ์ง€ ๊ฑฐ๋ฆฌ ์ค‘ ์ตœ๋Œ“๊ฐ’๊ณผ ๊ฐ™์€ ๊ฐ’์„ ๊ณจ๋ผ return