본문 바로가기
백준

백준 9012: 괄호(java)

by unhyepnhj 2024. 7. 12.

문제

 

풀이

스택 개념을 응용해 풀 수 있다. (자세한 내용은 링크 참고)

 

스택의 응용: 괄호 검사 문제

괄호가 올바르게 사용되었는지 스택을 사용하여 검사한다. 괄호의 검사 조건은 아래와 같다.조건 1: 왼쪽 괄호의 개수와 오른쪽 괄호의 개수가 동일조건 2: 같은 종류의 괄호에서 왼쪽 괄호는

sysouthelloworld.tistory.com

 왼쪽 괄호 '(' 가 나오면 스택에 삽입하고, 오른쪽 괄호 ')' 가 나오면 가장 최근에 삽입된 괄호와 짝을 이뤘음을 표시하기 위해 pop한다.

 

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

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
		
		int T=Integer.parseInt(in.readLine());
		for(int i=0; i<T; i++) {
			Stack<Character> stack=new Stack<>();
			char[] inputChar=in.readLine().toCharArray();
			boolean vps=true;
			
			for(int j=0; j<inputChar.length; j++) {
				char input=inputChar[j];
				
				if(input=='(')
					stack.push(input);
				//')'일때
				else if(stack.empty()) {
					vps=false;
					break;
				}
				else
					stack.pop();
			}
			if(!stack.empty())
				vps=false;
			
			if(vps)
				System.out.println("YES");
			else
				System.out.println("NO");
		}
	}
}

if문 대신 switch문으로 풀어도 상관없다

'백준' 카테고리의 다른 글

백준 10773: 제로(java)  (0) 2024.07.12
백준 28278: 스택 2(java)  (0) 2024.07.12
백준 10828: 스택(java)  (0) 2024.07.12
백준 1676: 팩토리얼 0의 개수(java)  (0) 2024.07.09
백준 11650: 좌표 정렬하기(java)  (0) 2024.07.09