자바생
Published 2021. 4. 5. 19:16
자바(백준) 9012 괄호 BOJ(Java)
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
profile

자바생

@자바생

틀린 부분이 있다면 댓글 부탁드립니다~😀

검색 태그