문제 풀이 시나리오
1. '('가 나오면 스택에 저장
2. ')'가 나오면 스택 pop
3. 이때 스택이 비어있거나
4. 마지막에 스택에 '('이 남아 있으면 isValid = false
문제
풀이
package baekjoon;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
class Stack{
List<Character> _stack = new ArrayList<Character>();
void push(Character c) {
_stack.add(c);
}
int pop() {
int last = _stack.size()-1;
if (last == -1)
return -1;
return _stack.remove(last);
}
int isEmpty() {
return _stack.size()==0? 1:0;
}
}
public class Main {
//flag 만들기
static boolean isValid = true;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb= new StringBuilder();
int n = Integer.parseInt(br.readLine());
for (int i = 0; i< n ;i++)
{
Stack stack = new Stack();
char[] charArray = br.readLine().toCharArray();
for (char ch : charArray) {
switch(ch)
{
case '(':
stack.push(ch);
break;
case ')':
if(stack.pop() == -1) {
isValid = false;
break;
}
}
}
if(stack.isEmpty()== 0) {
isValid= false;
}
if(isValid)
sb.append("YES").append('\n');
else
sb.append("NO").append('\n');
isValid = true;
}
System.out.println(sb);
}
}
'백준' 카테고리의 다른 글
[자바 :: 백준 9093 단어 뒤집기 ] (0) | 2022.08.06 |
---|---|
[자바 :: 백준 10828 스택 ] (0) | 2022.08.06 |
[자바 :: 백준 1966 프린터 큐] (0) | 2022.08.02 |
[자바 :: 프로그래머스 제일 작은 수 제거하기] (0) | 2022.08.01 |
[자바 :: 백준 10816 숫자카드2] (0) | 2022.08.01 |