[Java] 백준 - 9012번: 괄호 (Silver 4)

배똥회장·2022년 8월 29일
0
post-custom-banner

📝 문제

백준 -  9012번: 괄호 (Silver 4)


📝 풀이

📌 작성 코드

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));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		//테스트 케이스 개수		
		int n = Integer.parseInt(br.readLine());
		
		for (int i = 0; i < n; i++) {
			//한 줄씩 입력 받아와서 char 배열로 변환
			char[] word = br.readLine().toCharArray();
			//열린 괄호를 담기 위한 스택
			Stack<Character> s = new Stack<>();
			//for문 중간에 탈출을 했는지 체크할 boolean
			boolean value = true;
			
			for (int j = 0; j < word.length; j++) {
				if (word[j] == '(') { //만약 열린 괄호라면 스택에 추가
					s.add(word[j]);
				} else { //닫힌 괄호라면
					if (!s.isEmpty()) { //스택이 비어있지 않으면 스택에서 하나 꺼내기
						s.pop();
					} else { //비어있으면 올바른 문자열이 아니기 때문에 value 값 변경 후 탈출
						value = false;
						break;
					}
				}
			}
			//만약 s가 비어있고, value도 true면 올바른 문자열이라서 YES, 그렇지 않으면 NO 출력
			bw.write((s.isEmpty() && value ? "YES" : "NO") + "\n");
		}
		
		
		bw.flush();
		bw.close();
	}
}

📌 결과

profile
어쩌면 개발자
post-custom-banner

0개의 댓글