728x90
https://www.acmicpc.net/problem/4949
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));
while (true) {
String line = br.readLine();
Stack<Character> stack = new Stack<>();
String answer = "yes";
if (line.equals(".")) {
break;
}
for (int i = 0; i < line.length(); i++) {
switch (line.charAt(i)) {
case '(':
stack.push('(');
break;
case '[':
stack.push('[');
break;
case ']':
if (!stack.isEmpty() && stack.peek() == '[') {
stack.pop();
} else {
answer = "no";
}
break;
case ')':
if (!stack.isEmpty() && stack.peek() == '(') {
stack.pop();
} else {
answer = "no";
}
break;
}
}
if (!stack.isEmpty()) {
answer = "no";
}
System.out.println(answer);
}
}
}
회고
- 스택을 알고 있으면 쉽게 풀 수 있는 문제였다.
'Algorithm Study > BaekJoon (JAVA)' 카테고리의 다른 글
백준 16234_인구 이동_JAVA (0) | 2024.05.05 |
---|---|
백준 1918_후위 표기식_JAVA (0) | 2024.04.29 |
백준 10799_쇠막대기_JAVA (0) | 2024.04.24 |
백준 10773_제로_JAVA (0) | 2024.04.23 |
백준 12605_단어순서 뒤집기_JAVA (0) | 2024.04.23 |