728x90
풀이 방법
stack 클래스를 이용하여 문제를 풀었다.
1. '(' 을 받으면 push
2. ')'을 받을 때
2-1. stack이 비어있으면 VPS가 아님
2-2. stack이 비어있지 않으면 pop한다.
3. 스택이 비어있으면 VPS이고, 스텍이 비어있지 않으면 VPS가 아님.
사용 개념
stack
소스
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package Data_Structure;
import java.util.*;
import java.io.*;
public class Main {
static Stack<Character> stack;
static StringBuilder sb = new StringBuilder();
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int test = Integer.parseInt(st.nextToken());
for(int i = 0; i < test; i++){
st = new StringTokenizer(br.readLine());
stack = new Stack<>();
trueVPS(st.nextToken());
}
System.out.print(sb);
}
static void trueVPS(String str) {
for(int i = 0; i < str.length(); i++){
char ch = str.charAt(i);
if(ch == '(') stack.push(ch);
else{
if(stack.isEmpty()){
sb.append("NO").append('\n');
return;
}
else stack.pop();
}
}
if(stack.isEmpty()) sb.append("YES").append('\n');
else sb.append("NO").append('\n');
}
}
|
cs |
728x90
'BOJ(Java)' 카테고리의 다른 글
자바(백준) 1966 프린터 큐 (0) | 2021.04.08 |
---|---|
자바(백준) 1158 요세푸스 문제 (0) | 2021.04.05 |
자바(백준) 10867 중복 빼고 정렬하기 (0) | 2021.04.05 |
자바(백준) 11651 좌표 정렬하기 2 (0) | 2021.04.05 |
자바(백준) 11650 좌표 정렬하기 (0) | 2021.04.05 |