백준4949. 균형잡힌 세상

김태훈·2024년 1월 15일
0

알고리즘

목록 보기
4/7

백준 9012. 괄호 문제와 같은 문제입니다.

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

public class Main {
	// 백준 9012와 같은 문제입니다.
	// 조건에 ( 와 [ 를 넣고 짝이 맞는지에 대한 조건을 추가
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		String s;

		while (true) {

			s = br.readLine();

			if (s.equals(".")) {    // 종료 조건문
				break;
			}

			sb.append(solve(s)).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 == '(' || c == '[') {
				stack.push(c);
			} else if (c == ')') {
				// 스택이 비어있거나 pop할 원소가 소괄호랑 매칭 X
				if (stack.empty() || stack.peek() != '(') {
					return "no";
				} else {
					stack.pop();
				}
			} else if (c == ']') {
				// 스택이 비어있거나 pop할 원소가 대괄호랑 매칭 X
				if (stack.empty() || stack.peek() != '[') {
					return "no";
				} else {
					stack.pop();
				}
			}
		}

		if (stack.empty()) {
			return "yes";
		} else {
			return "no";
		}
	}
}

0개의 댓글

관련 채용 정보