1068 : 트리

풀이

리프 노드라는 것은,

들어오는 간선이 없다는 것.

코드

#include <stdio.h>

int n, i, now, del, cnt, gph[51], idg[51];

int main() {
	scanf("%d", &n);
	for (i = 0; i < n; i++) {
		scanf("%d", &gph[i]);
		if (~gph[i]) idg[gph[i]]++;
	}
	scanf("%d", &del);

	if (gph[del] == -1) return ~printf("0");
	idg[gph[del]]--;
	for (i = 0; i < n; i++) {
		if (idg[i]) continue;
		cnt++;
		for (now = i; ~now; now = gph[now]) if (now == del) {
			cnt--; break;
		}
	}

	printf("%d", cnt);

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2018-01-08 14:59

Read more posts by this author