본문 바로가기
알고리즘/SWEA

[Java] SWEA 1231번 중위순회

by 컴공맨 2021. 2. 26.
 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


풀이

완전이진트리이기 때문에 입력받은 그대로 배열에 입력하되 입력이 1부터 이므로 배열의 크기를 N + 1로 만들고 inOrder 함수를 사용하여 해결했습니다.


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
	public static int N;
	public static StringBuilder sb = new StringBuilder("");
	public static char[] tree;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		
		for (int tc = 1; tc <= 10; ++tc) {
			N = Integer.parseInt(br.readLine());
			
			tree = new char[N + 1];
			
			for (int i = 0; i < N; ++i) {
				st = new StringTokenizer(br.readLine(), " ");
				tree[Integer.parseInt(st.nextToken())] = st.nextToken().charAt(0);
			}
			
			sb.append("#").append(tc).append(" ");
			
			inOrder(1);
			
			sb.append("\n");
		}
		
		System.out.println(sb);
	}
	
	public static void inOrder(int idx) {
		if (idx > N) {
			return;
		}
		
		inOrder(idx * 2);
		sb.append(tree[idx]);
		inOrder((idx * 2) + 1);
	}
}

 

pyo7410/Algorithm

1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.

github.com

 

'알고리즘 > SWEA' 카테고리의 다른 글

[Java] SWEA 1211번 Ladder2  (0) 2021.03.02
[Java] SWEA 1226번 미로1  (0) 2021.03.01
[Java] SWEA 7829번 보물왕 태혁  (0) 2021.02.25
[Java] SWEA 1219번 길찾기  (0) 2021.02.24
[Java] SWEA 1227번 미로2  (0) 2021.02.23