
제출 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
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++) {
String line = br.readLine();
Stack<Character> stack = new Stack<>();
boolean isValid = true;
for(char ch : line.toCharArray()) {
if(ch == '(') {
stack.push(ch);
} else { // ')' 일 때
if(stack.isEmpty()) {
isValid = false;
break;
}
stack.pop();
}
}
if(isValid && stack.isEmpty()) {
bw.append("YES\n");
} else {
bw.append("NO\n");
}
}
br.close();
bw.flush();
bw.close();
}
}
문제 의도
- 스택의 기본 동작 이해
'알고리즘' 카테고리의 다른 글
| 프로그래머스 12906번 | 같은 숫자는 싫어 문제 풀이 (Java) (0) | 2025.02.12 |
|---|---|
| 백준 10866번 | 덱 문제 풀이 (Java) (1) | 2025.02.11 |
| 백준 18258번 | 큐 2 문제 풀이 (Java) (0) | 2025.02.07 |
| 백준 10828번 | 스택 문제 풀이 (Java) (2) | 2025.02.05 |
| 백준 10808번 | 알파벳 개수 문제 풀이 (Java) (2) | 2025.02.03 |