반응형
이 문제는 stack을 사용하는 문제입니다.
1. 첫 번째 문자는 "("이어야 한다.
2. 맨 마지막 문자는 ")"이어야 한다.
3. "(" 개수와 ")"의 개수가 같아야 한다.
이걸 스택으로 생각해볼까요?
"(" 이면 push() 한다. ")" 이면 pop 한다.
그런데 stack에 아무것도 없을 때, pop을 하면 오류가 나기 때문에 ")" 나왔을때 비어있지 않다면 pop() 비어 있으면 NO를 출력한다.
이 문제도 BufferedReader를 사용하여 풀었습니다.
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException, NumberFormatException {
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[] s = br.readLine().split("");
Stack stack = new Stack();
String result = "YES";
for (int j = 0; j < s.length; j++) {
if (s[j].equals("(")) {
stack.push(s[j]);
} else {
if(stack.empty()) {
result = "NO";
}
else {
stack.pop();
}
}
}
if (!stack.empty()) {
result = "NO";
}
bw.write(result +"\n");
}
bw.flush();
}
}
반응형
'🔑알고리즘 > baekjoon' 카테고리의 다른 글
백준 11653 : 소인수분해 - 자바 문제 해결 코드 (0) | 2022.01.24 |
---|---|
백준 2581 : 소수 - JAVA(자바) 해결 코드 (0) | 2022.01.23 |
백준 10773 : 제로 자바 문제 풀이 (스택 사용 문제) (0) | 2022.01.02 |
백준 10828 : 스택 자바 문제 풀이(시간 초과 해결-BufferedReader의 사용) (0) | 2022.01.02 |
백준 10250 : ACM 호텔 - 자바(Java) 문제 풀이 (0) | 2021.08.15 |