Coding - Algo/Java

[SWEA] 1233:사칙연산 유효성 검사(Java 자바)

jainn 2022. 3. 4. 17:45
728x90

풀이 및 소스코드

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

public class Solution {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();

		int T = 10;
		for (int t = 1; t <= T; t++) {
			int v = Integer.parseInt(br.readLine());
			node[] node = new node[v + 1];
			node[0] = new node();
			for (int i = 1; i <= v; i++) {
				st = new StringTokenizer(br.readLine());
				int n = Integer.parseInt(st.nextToken());
				String info = st.nextToken();
				String c1 = st.hasMoreTokens() ? st.nextToken() : null;
				String c2 = st.hasMoreTokens() ? st.nextToken() : null;
				node[i] = new node(info, c1, c2);
			}

			boolean c = true;
			for (int i = 1; i <= v; i++) {
				// 부모노드가 연산자인데 자식노드에 하나의 노드만 있을 때
				if (node[i].info.equals("/") || node[i].info.equals("*") || node[i].info.equals("+")
						|| node[i].info.equals("-")) {
					if (node[i].c1 == null || node[i].c2 == null) {
						c = false;
						break;
					}
				}
				// 부모노드가 숫자인데 자식 노드에 연산자가 없을 때
				else {
					if (node[i].c1 != null || node[i].c2 != null) {
						c = false;
						break;
					}
				}
			}
			
			sb.append("#").append(t).append(" ");
			if (c) {
				sb.append("1").append("\n");
			} else {
				sb.append("0").append("\n");
			}
		}
		System.out.println(sb);
	}
}

class node {
	String info, c1, c2;

	public node() {
		super();
	}

	public node(String info, String c1, String c2) {
		super();
		this.info = info;
		this.c1 = c1;
		this.c2 = c2;
	}
}
반응형