https://www.acmicpc.net/problem/5639
5639번: 이진 검색 트리
트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다
www.acmicpc.net
저는 재귀를 통해 문제를 해결하였습니다.
먼저 루트값이 나오게 되고, 이후 이 루트값보다 낮다면 왼쪽, 높다면 오른쪽에 존재하기 때문에 이 기준으로 둘을 나누고, 현재 값을 출력해 나가면서 문제를 해결하였습니다.
package BOJ.etc;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BOJ_5639 {
private static final int MAX_SIZE = 10_000;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] input = new int[MAX_SIZE+1];
int index = 0;
String str;
while(true){
str = br.readLine();
if(str == null || str.equals("")){
break;
}
input[index++] = Integer.parseInt(str);
}
postOrder(0,index-1,input);
}
private static void postOrder(int start, int end, int[] input) {
// System.out.println(start+" "+end);
if(start > end){
return ;
}
int value = input[start];
int index = start+1;
while(index <= end){
if(input[index] < value){
index++;
}else{
break;
}
}
postOrder(start+1,index-1,input);
postOrder(index,end,input);
System.out.println(value);
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스 세로 읽기 (JAVA) (0) | 2023.05.24 |
---|---|
프로그래머스 두 수의 합 (JAVA) (0) | 2023.05.22 |
백준 22114번 창영이와 점프 (JAVA) (0) | 2023.05.20 |
백준 16441번 아기돼지와 늑대 (JAVA) (1) | 2023.05.19 |
프로그래머스 삼각 달팽이 (JAVA) (0) | 2023.05.18 |