ํธ๋ฆฌ ์ํ (Lv. Sliver1)
1. ๋ฌธ์
2. ํ์ด
1. ๋ฌธ์
https://www.acmicpc.net/problem/1991
2. ํ์ด
import java.io.*;
import java.util.*;
public class Main {
static int[][] tree;
static StringBuilder sb = new StringBuilder();
public static void preOrder(int start) {
if (start != -18) {
sb.append((char) (start + 'A' - 1));
preOrder(tree[start][0]);
preOrder(tree[start][1]);
}
}
public static void inOrder(int start) {
if (start != -18) {
inOrder(tree[start][0]);
sb.append((char) (start + 'A' - 1));
inOrder(tree[start][1]);
}
}
public static void postOrder(int start) {
if (start != -18) {
postOrder(tree[start][0]);
postOrder(tree[start][1]);
sb.append((char) (start + 'A' - 1));
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
tree = new int[n + 1][2];
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
char a = st.nextToken().charAt(0);
char b = st.nextToken().charAt(0);
char c = st.nextToken().charAt(0);
int parent = a - 'A' + 1;
int left = (b == '.') ? -18 : b - 'A' + 1;
int right = (c == '.') ? -18 : c - 'A' + 1;
tree[parent][0] = left;
tree[parent][1] = right;
}
preOrder(1);
sb.append("\n");
inOrder(1);
sb.append("\n");
postOrder(1);
sb.append("\n");
System.out.print(sb.toString());
}
}
- 'A' + 1 ์ฝ๋๋ A~Z๋ฅผ ์ ์๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋๋ค. tree[parent][0] = left; ์ i๋ฒ ๋ ธ๋์ ์ผ์ชฝ ์์, tree[parent][1] = right; ์ i๋ฒ ๋ ธ๋์ ์ค๋ฅธ์ชฝ ์์์ ์ ์ฅํฉ๋๋ค.
if (start != -18) {
sb.append((char) (start + 'A' - 1));
preOrder(tree[start][0]);
preOrder(tree[start][1]);
}
sb.append((char) (start + 'A' - 1)); ๋ฅผ ํตํด ๋ฃจํธ๋ฅผ ์ง์ ํด์ค๋๋ค. preOrder(tree[start][0]); ์์ start ์์ ๋ฃจํธ๊ฐ์ด ๋ค์ด๊ฐ๊ฒ ๋๊ณ ํธ๋ฆฌ์ ์ผ์ชฝ ์์๋ถํฐ ์ฌ๊ท์ ์ผ๋ก ํธ์ถ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ if (start != -18) ์กฐ๊ฑด๋ฌธ์ ํตํด ๋ฃจํธ๊ฐ์ด ์์ ๋๊น์ง ์๋ํฉ๋๋ค.
๋ฃจํธ๊ฐ์ ๊ฐ์ฅ ๋จผ์ ์ ํ๋ฉด ์ ์์ํ, ๋ฃจํธ๊ฐ์ ์ค๊ฐ์ ์ ํ๋ฉด ์ค์์ํ, ๋ฃจํธ๊ฐ์ ๋ง์ง๋ง์ ์ ํ๋ฉด ํ์์ํ๋ฅผ ํ ์ ์์ต๋๋ค.
๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์ !
ํผ๋๋ฐฑ์ ์ธ์ ๋ ํ์์ ๋๋ค <3
'๐ก Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๋ ์์ ํฉ - ํฌ ํฌ์ธํฐ (Lv. Sliver3) (0) | 2025.02.22 |
---|---|
[Java] ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ (Lv. Sliver2) (0) | 2025.02.21 |
[Java] DFS์ BFS (Lv. Sliver2) (0) | 2025.02.19 |
[Huffman] ํํ๋ง ์๊ณ ๋ฆฌ์ฆ (0) | 2025.02.14 |
[Java] ์งํฉ์ ํํ - ์ ๋์จ ํ์ธ๋ (Lv. Gold5) (0) | 2025.02.14 |