백준 11725번: 트리의 부모 찾기
문제
문제 바로가기> 백준 11725번: 트리의 부모 찾기
풀이
dfs를 진행하면서 각 node들의 parent 정보를 저장해준 후 한번에 출력해주었다.
#include<iostream>
#include<vector>
using namespace std;
int N;
int parent[100001]; // 해당 번호의 node의 부모 저장
bool visit[100001]={0, }; // 방문 여부 저장
vector<int> tree[100001]; // tree 저장
void dfs(int n){
visit[n]=true; // 방문
for(int i=0; i<tree[n].size(); i++){
int child = tree[n][i];
if(!visit[child]){ // child를 방문하지 않은 경우
parent[child] = n; // 부모 정보 update
dfs(child); // child 방문
}
}
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0);
int a, b; cin>>N;
for(int i=1; i<N; i++){ // tree를 만듦
cin>>a>>b;
tree[a].push_back(b);
tree[b].push_back(a);
}
dfs(1); // dfs를 진행하면서 부모 노드 정보 저장
for(int i=2; i<=N; i++) cout << parent[i] << '\n'; // 저장해둔 부모 정보 출력
}
Author And Source
이 문제에 관하여(백준 11725번: 트리의 부모 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@danbibibi/백준-11725번-트리의-부모-찾기-ty6rtcc1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)