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

[Java] SWEA 1233번 사칙연산 유효성 검사

by 컴공맨 2021. 2. 19.
 

SW Expert Academy

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

swexpertacademy.com


풀이

배열에서 해당 노드에 자식노드가 있다면 인덱스는 전체 배열크기인 N의 절반보다 작은 수 즉, N / 2보다 작거나 같아야 하고 반대로 리프노드인 경우는 N / 2보다 커야합니다.

또한, 리프노드에는 숫자만 들어올 수 있고 리프노드가 아닐때만 연산자가 들어갈 수 있으므로 이를 이용하여 해결하였습니다.


코드

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 String[] tree;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder("");
		StringTokenizer st;
		
		for (int tc = 1; tc <= 10; ++tc) {
			N = Integer.parseInt(br.readLine());
			
			tree = new String[N + 1];
			int answer = 1;
			
			for (int i = 0; i < N; ++i) {
				st = new StringTokenizer(br.readLine());
				tree[Integer.parseInt(st.nextToken())] = st.nextToken();
			}
			
			int nodeIdx = N / 2;
			for (int i = 1; i < N + 1; ++i) {
				if (tree[i].charAt(0) >= '0' && tree[i].charAt(0) <= '9') {
					if (i <= nodeIdx) {
						answer = 0;
						break;
					}
				}
				else {
					if (i > nodeIdx) {
						answer = 0;
						break;
					}
				}
			}
			
			sb.append("#").append(tc).append(" ").append(answer).append("\n");
		}
		
		System.out.println(sb);
	}
}

 

pyo7410/Algorithm

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

github.com

 

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

[Java] SWEA 1227번 미로2  (0) 2021.02.23
[Java] SWEA 1232번 사칙연산  (0) 2021.02.22
[Java] SWEA 1224번 계산기3  (0) 2021.02.18
[Java] SWEA 1222번 계산기1  (0) 2021.02.17
[Java] SWEA 11387번 몬스터 사냥  (0) 2021.02.16