본문 바로가기

백준

11725 트리의 부모 찾기

부모 노드를 따로 저장해서 풀었다. 이전에 풀어본 개념이라 쉽게 해결했다. 

 

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <deque>
#include <stack>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <bitset>
#include <stdio.h>
#include <math.h>
#include <sstream>

#define xx first
#define yy second
#define all(x) (x).begin(), (x).end()

using namespace std;
using i64 = long long int;
using ii = pair<int, int>;
using iis = pair<int, string>;
using ii64 = pair<i64, i64>;
using iii = tuple<int, int, int>;

bool visited[100005];
vector <int> adj[100005];
int parent[100005];

void dfs(int curr)
{
    visited[curr] = true;
    
    for (int next : adj[curr])
    {
        if (visited[next])
            continue;
        parent[next] = curr;
        dfs(next);
    }
}


int main() 
{
    int n;
    scanf("%d", &n);
    
    for (int i = 1; i < n; i++)
    {
        int u, v;
        scanf("%d %d", &u, &v);
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    
    
    memset(visited, false, sizeof(visited));
    dfs(1);

    for (int i = 2; i <= n; i++) {
        printf("%d\n", parent[i]);
    }
    
    return 0;
}

'백준' 카테고리의 다른 글

16139 인간-컴퓨터 상호작용  (0) 2021.12.23
15979 스승님 찾기  (0) 2021.12.23
11724 연결 요소의 개수  (0) 2021.12.23
10819 차이를 최대로  (0) 2021.12.23
10472 십자뒤집기  (0) 2021.12.22