시간 & 메모리 제한
문제
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Back_5639 {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Node root = new Node(Integer.parseInt(br.readLine()));
String tmp;
while((tmp = br.readLine()) != null) {
Node next = new Node(Integer.parseInt(tmp));
Insert(root,next);
}
postOrder(root);
System.out.println(sb);
}
private static void postOrder(Node root) {
if(root.left != null) postOrder(root.left);
if(root.right != null) postOrder(root.right);
sb.append(root.num+"\n");
}
private static void Insert(Node root, Node next) {
if(next.num<root.num) {
if(root.left !=null) {
Insert(root.left, next);
}else {
root.left = next;
}
}else {
if(root.right != null) {
Insert(root.right, next);
}else {
root.right = next;
}
}
}
static class Node{
int num;
Node left;
Node right;
public Node(int num) {
this.num = num;
}
}
}
- 트리에 관련된 문제입니다.
- 먼저 Node에 관한 클래스를 선언을 해줬습니다.
- 입력값이 없을 때까지 값을 받아옵니다.
- 받아온 값을 기준으로 이진트리를 만들어 줍니다.
- 만들어진 이진 트리를 후위 순회를 통해서 값을 읽어옵니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_13305 주유소(자바) / 그리디 알고리즘 (0) | 2021.08.11 |
---|---|
백준_11659 구간 합 구하기 4(자바) / 누적 합 (0) | 2021.08.11 |
백준_9372 상근이의 여행(자바) / BFS (0) | 2021.08.09 |
백준_2346 풍선 터뜨리기(자바) / 덱(Deque) (0) | 2021.08.06 |
백준_1780 종이의 개수(자바) / 재귀 (0) | 2021.08.05 |