https://www.acmicpc.net/problem/9012
[풀이]
스택을 활용하는 전형적인 문제였다. 입력받는 문자열을 확인하여
1. 문자열이 '('일 경우, 스택에 추가
2. 문자열이 ')'일 경우, 기존의 스택이 비어져있나 확인 후 스택에 무엇인가 있다면 스택에서 값 제거
위의 방식으로 조건문을 만들면 풀 수 있는 문제였다.
(이외에도 오늘 푸려고 한 문제가 2문제 정도 더 있었는데 풀지를 못했다... 조만간 다시 도전해서 추가해야할 것 같다..)
[코드]
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 bf = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(bf.readLine());
Stack<Character> stack = new Stack<>();
while (T-- > 0) {
boolean check = true;
stack.clear();
String input = bf.readLine();
for (int i = 0; i < input.length(); i++) {
char temp = input.charAt(i);
if (temp == '(') {
stack.push('(');
} else if (temp == ')') {
if (stack.isEmpty()) {
check = false;
break;
} else {
stack.pop();
}
}
}
if (!stack.isEmpty()) {
check = false;
}
if (check == true) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 3085번 : 사탕 게임(Java) (0) | 2021.07.29 |
---|---|
백준 11719번 : 그대로 출력하기 2(Java) (0) | 2021.07.28 |
백준 9375번 : 패션왕 신해빈(Java) (0) | 2021.07.27 |
백준 9935번 : 문자열 폭발(Java) (0) | 2021.07.26 |
백준 1157번 : 단어 공부(Java) (0) | 2021.07.25 |