-
[JAVA] 얼렁뚱땅 중위순회 풀이얼렁뚱땅 JAVA 문제풀이 2023. 3. 2. 15:13
완전 지금 알고리즘 머리 텅텅이라 원칙대로 푼 거 같지는 않지만
풀었다는 것에 너무 신나서 올리는 글
import java.util.*; import java.io.*; public class 중위순회 { static HashMap <Integer, String> content = new HashMap<Integer, String>(); static HashMap <Integer, Integer> left = new HashMap<Integer, Integer>(); static HashMap <Integer, Integer> right = new HashMap<Integer, Integer>(); public static void dfs(int num,int sign) { if (sign!=0) { System.out.print("#"+sign+" "); } if (left.get(num) != -1) { dfs(left.get(num),0); System.out.print(content.get(num)); if(right.get(num) != -1) { dfs(right.get(num),0); } } else if(left.get(num) == -1) { System.out.print(content.get(num)); return; } } public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); for(int t=1;t<=10;t++) { int n = Integer.parseInt(br.readLine()); for(int i=0;i<n;i++) { String [] str = br.readLine().split(" "); content.put(Integer.parseInt(str[0]), str[1]); if(str.length>=3) { left.put(Integer.parseInt(str[0]),Integer.parseInt(str[2])); } else { left.put(Integer.parseInt(str[0]),-1); } if(str.length>=4) { right.put(Integer.parseInt(str[0]),Integer.parseInt(str[3])); } else { right.put(Integer.parseInt(str[0]),-1); } } dfs(1,t); System.out.println(); } } }
'얼렁뚱땅 JAVA 문제풀이' 카테고리의 다른 글
[JAVA 백준 문제풀이] 얼렁뚱땅 1717번 집합의 표현 풀이 (0) 2023.03.29 [JAVA 백준 문제풀이] 얼렁뚱땅 18258 큐2 풀이 (0) 2023.03.03 [JAVA 백준 문제풀이] 얼렁뚱땅 9012 괄호 풀이 (0) 2023.03.03 [JAVA] 전위순회로 사칙연산 계산하기 (0) 2023.03.02 [JAVA 백준 문제풀이] 얼렁뚱땅 20546 기적의 매매법 풀이 (0) 2023.02.27