๐ป
[๋ฐฑ์ค] DFSBFS - 11725. ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ ๋ณธ๋ฌธ
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด Baekjoon
[๋ฐฑ์ค] DFSBFS - 11725. ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ
๋ํจ๋ 2020. 11. 13. 15:31
๋ฌธ์
๋ฃจํธ ์๋ ํธ๋ฆฌ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋, ํธ๋ฆฌ์ ๋ฃจํธ๋ฅผ 1์ด๋ผ๊ณ ์ ํ์ ๋, ๊ฐ ๋ ธ๋์ ๋ถ๋ชจ๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ ธ๋์ ๊ฐ์ N (2 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N-1๊ฐ์ ์ค์ ํธ๋ฆฌ ์์์ ์ฐ๊ฒฐ๋ ๋ ์ ์ ์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ N-1๊ฐ์ ์ค์ ๊ฐ ๋ ธ๋์ ๋ถ๋ชจ ๋ ธ๋ ๋ฒํธ๋ฅผ 2๋ฒ ๋ ธ๋๋ถํฐ ์์๋๋ก ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1 ๋ณต์ฌ
7
1 6
6 3
3 5
4 1
2 4
4 7
์์ ์ถ๋ ฅ 1 ๋ณต์ฌ
4
6
1
3
1
4
ํ์ด
DFS๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์๊ณ , ์ธ์ ํ๋ ฌ์ ์ด์ฉํ๋ค.
์์ 1์ ์์๋ก ๋ค๋ฉด,
[1] 6 4
[2] 4
[3] 6 5
[4] 1 2 7
[5] 3
[6] 1 3
[7] 4
๋ก ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ๋ฃ์ด์ฃผ๊ณ , DFS๋ฅผ ์ด์ฉํ์ฌ ๋ถ๋ชจ๋ ธ๋๋ฅผ ํ์ํ๋ค.
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 32 33 34 35 36 37 38 39 40 41 42 | //11725. ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ #include <iostream> #include <vector> using namespace std; bool visited[100001]; int parent[100001]; vector<int> v[100001]; void dfs(int currentNode){ visited[currentNode] = true; for(int i=0; i<v[currentNode].size(); i++){ int nextNode = v[currentNode][i]; if(!visited[nextNode]){ parent[nextNode] = currentNode; dfs(nextNode); } } } int main(){ int N; cin >> N; for(int i=0; i<N-1; i++){ int firstNode, secondNode; cin >> firstNode >> secondNode; v[firstNode].push_back(secondNode); v[secondNode].push_back(firstNode); } dfs(1); for(int i=2; i<=N; i++){ cout << parent[i] << "\n"; } return 0; } | cs |
๋ฐ์ํ
'์๊ณ ๋ฆฌ์ฆ > ๋ฌธ์ ํ์ด Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ์ฐ์ ์์ํ - 1966. ํ๋ฆฐํฐํ (0) | 2020.11.12 |
---|---|
[๋ฐฑ์ค] ๋ถํ ์ ๋ณต - 1780. ์ข ์ด์ ๊ฐ์ (0) | 2020.10.21 |
[๋ฐฑ์ค] ๊ทธ๋ฆฌ๋ - 1946. ์ ์ ์ฌ์ (0) | 2020.10.01 |
[๋ฐฑ์ค] DFSBFS - 7576. ํ ๋งํ (0) | 2020.09.29 |
[๋ฐฑ์ค][์ผ์ฑ SW์ญ๋ ํ ์คํธ] 15683. ๊ฐ์ (0) | 2020.04.25 |
Comments