백준9012. 괄호

김태훈·2024년 1월 15일
0

알고리즘

목록 보기
3/7

백준9012. 괄호

항해99를 시작할 때 풀었던 문제였다.
그 때는 python을 사용해서 풀었고 이번에는 java를 사용해서 풀었다.

package com.sparta;

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

public class Main {
	// 스택을 이용하여 여는 괄호일 때, 스택에 넣고
	// 닫는 괄호일 때 pop하여 스택에 남아있는 지 확인하기
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		int T = Integer.parseInt(br.readLine());

		for (int i = 0; i < T; i++) {
			sb.append(solve(br.readLine())).append('\n');
		}

		System.out.println(sb);
	}

	public static String solve(String s) {
		Stack<Character> stack = new Stack<>();

		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);

			// 여는 괄호 : 스택에 넣기
			if (c == '(') {
				stack.push(c);
			} else if (stack.empty()) {    // 스택이 비었는데 닫는 괄호
				return "NO";
			} else {            // 닫는 괄호
				stack.pop();
			}
		}

		if (stack.empty()) {
			return "YES";
		} else {
			return "NO";
		}
	}

}

0개의 댓글

관련 채용 정보