반응형
https://www.acmicpc.net/problem/11725
문제 해결 알고리즘
DFS로 푸는데 각 마디별로 부모를 저장해주고 메모리 초과가 나지 않게 인접행렬보다는 인접리스트를 사용해주었다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int parent[100002];
vector<int> graph[100002];
void find_parent(int x){
for(int i=0;i<graph[x].size();i++){
if(parent[graph[x][i]] == 0){
parent[graph[x][i]] = x;
find_parent(graph[x][i]);
}
}
}
int main(){
int N; cin >> N;
int A, B;
for(int i=1;i<N;i++){
cin >> A >> B;
graph[A].push_back(B);
graph[B].push_back(A);
}
parent[1] = 1;
find_parent(1);
for(int i=2;i<=N;i++){
cout << parent[i] << '\n';
}
}
반응형
'알고리즘 문제 해결 > BOJ' 카테고리의 다른 글
[그리디] BOJ 11399 ATM (0) | 2021.11.09 |
---|---|
[DFS] BOJ 11724 연결 요소의 개수 (0) | 2021.11.06 |
[플로이드-와샬] BOJ 11780 플로이드 2 (0) | 2021.10.30 |
[DP] BOJ 17404 RGB거리 2 (0) | 2021.10.25 |
[BFS] BOJ 12852 1로 만들기 2 (0) | 2021.10.22 |