-
[5639] 이진 검색 트리BOJ 2021. 9. 5. 01:42
https://www.acmicpc.net/problem/5639
5639번: 이진 검색 트리
트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다
www.acmicpc.net
<문제>
숫자의 대소관계로 탐색범위를 두개씩 쪼개준다. 분할정복같은 느낌으로 접근하면 되며, 이를 재귀로 구현했다.
<소스코드>
123456789101112131415161718192021222324252627#include<stdio.h>#include<iostream>using namespace std;int a[10001], x, cnt;void f(int start, int end) {if (start == end)return;else if (start == end - 1) {printf("%d\n", a[start]);return;}int i;for (i = start + 1; i < end && a[i] < a[start]; i++);f(start + 1, i);f(i, end);printf("%d\n", a[start]);}int main(void) {int i=0;while (1) {cin >> x;if (cin.eof() == true)break;a[cnt] = x;cnt++;}f(0, cnt);return 0;}cs 'BOJ' 카테고리의 다른 글
[1013] Contact (0) 2021.09.07 [8980] 택배 (0) 2021.09.05 [1600] 말이 되고픈 원숭이 (0) 2021.09.05 [17142] 연구소 3 (0) 2021.09.02 [1806] 부분합 (0) 2021.09.02