9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net

스택을 이용했다.
'('일땐 스택에 넣어주고
')'일땐 스택에서 빼줬다.
pop()은 스택의 맨 위에 있는 값(가장 최근에 들어온 값)을 스택에서 제거하면서 반환하는 함수.
스택에 아무것도 없을때 pop()을 쓰게되면 예외가 발생하기 때문에,
try catch문 써서 "NO" 를 출력할 수 있게 처리했다.
또한 마지막에 스택이 비어있지 않다면 '(' 가 더 많다는 뜻이므로
역시 "NO"를 출력할 수 있게 처리했다.
|
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
|
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int T = Integer.parseInt(sc.nextLine());
for(int i = 0; i < T; i++){
boolean check = true;
Stack stk = new Stack();
String str = sc.next();
for(int j = 0; j < str.length(); j++){
if(str.charAt(j) == '('){
stk.push('(');
}else{
try{
stk.pop();
}catch (Exception e){
check = false;
break;
}
}
}
if(!stk.empty())
check = false;
if(check)
System.out.println("YES");
else
System.out.println("NO");
}
}
}
|
cs |
'알고리즘 > 백준' 카테고리의 다른 글
| 백준 10845 큐 자바[java] (0) | 2023.01.01 |
|---|---|
| 백준 1406 에디터 자바[java] (0) | 2023.01.01 |
| 백준 1874번 스택 수열 자바[java] (0) | 2022.12.31 |
| 백준 9093번 단어 뒤집기 자바[java] (0) | 2022.12.31 |
| 백준 10828번 스택 자바[java] (2) | 2022.12.30 |