백준 1068번

2022. 2. 6. 23:59·Study/Algorithm

https://www.acmicpc.net/problem/1068

 

1068번: 트리

첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다

www.acmicpc.net

#include <iostream>
#include <stack>
#include <vector>

using namespace std;

vector<vector<int>> node;
int N;
int answer = 0;
int target;


void Count(int now_node) {
if (now_node == target) return;

int now_node_size = node[now_node].size();

switch (now_node_size) {
case 0:
answer++; return;
break;
case 1:
if (node[now_node][0] == target) {
answer++;
break;
}
default:
for (int i = 0; i < now_node_size; i++) {
Count(node[now_node][i]);
}
break;
}
}

int main() {
cin >> N;
node.resize(N);
int root;
for (int i = 0; i < N; i++) {
int input;
cin >> input;

if (input == -1) {
root = i;
}
else {
node[input].push_back(i);
}
}
cin >> target;

if (target == 0) {
cout << 0 << "\n";
}
else {
Count(root);
cout << answer;
}

return 0;
}

설계

'Study > Algorithm' 카테고리의 다른 글

백준 14916번  (0) 2022.02.08
백준 1021번  (0) 2022.02.07
백준 14501번  (0) 2022.01.30
백준 1874번  (0) 2022.01.30
백준 9935번  (0) 2022.01.30
'Study/Algorithm' 카테고리의 다른 글
  • 백준 14916번
  • 백준 1021번
  • 백준 14501번
  • 백준 1874번
_WooHyun_
_WooHyun_
  • _WooHyun_
    Nerd
    _WooHyun_
  • 전체
    오늘
    어제
    • 분류 전체보기 (79)
      • Study (60)
        • Algorithm (24)
        • Unreal Engine (19)
        • C++ (1)
        • Maya (1)
        • GoLang (3)
        • Mysql (3)
        • Linux (7)
        • Server (2)
      • Projects (0)
        • Unreal Engine (0)
        • Server (0)
      • 개발일지 (8)
        • Unreal Engine (7)
        • Art (1)
        • Server (0)
      • 미래 (5)
      • 개발아이디어 (0)
      • 잡지식 (2)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
    • 블로그설정
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
_WooHyun_
백준 1068번
상단으로

티스토리툴바