백준 4949번(Java)

박은지·2025년 2월 11일
0

백준

목록 보기
27/89
post-thumbnail

import java.io.*;
import java.util.*;

public class Main {

	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); // stack에 추가
			}
			else if(c == ')') {
				if(stack.empty() || stack.peek() != '(') { // 비었거나 최근 추가한게 (가 아니면 no
					return "no";
				}
				else {
					stack.pop(); // stack에서 삭제
				}
			}
			else if(c == ']') {
				if(stack.empty() || stack.peek() != '[') {
					return "no";
				}
				else {
					stack.pop();
				}
			}
		}
		
		if(stack.empty()) {
			return "yes";			
		}
		else {
			return "no";
		}
	}
}
profile
백엔드 개발자가 되고싶은 eunzi😊

0개의 댓글