https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
스택 알고리즘을 쓰는 문제고
괄호가 잘 짝지어는지의 여부를 출력한다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
String[] str = new String[T];
for (int i = 0; i < T; i++) {
//input
str[i] = sc.next();
int stk = 0;
//chk vps
for (int j = 0; j < str[i].length(); j++) {
if (str[i].charAt(j) == '(') {
stk++;
} else {
stk--;
if (stk < 0) {
break;
}
}
}
//set rst
if (stk == 0) {
str[i] = "YES";
} else {
str[i] = "NO";
}
}
for(int i = 0; i<T; i++) {
System.out.println(str[i]);
}
}
}
2차원 배열을 쓸까하다가 1차원까지만 하고 싶어서, 배열 하나를 최대한 활용했다.
그냥 신경써줄 부분은 ')'가 나왔을 때 어떻게 할지를 결정해주는 정도면 되지 않을까 싶어서 그냥 이렇게 풀었다.
스택 공부할 때는 뭐 배열에 뭔 넣고 빼고 그러길래
이렇게 푸는 게 원래의 의도였는지는 잘 모르겠지만, 다른 사람 풀이 보니까 다 비슷하네
728x90
'백준이당' 카테고리의 다른 글
[JAVA] 백준 1026번 : 보물 (0) | 2023.06.20 |
---|---|
[JAVA] 백준 2477 : 참외밭 (0) | 2023.06.15 |
[JAVA] 백준 1010 : 다리놓기 (0) | 2023.06.14 |
[JAVA] 백준 2869번 : 달팽이는 올라가고 싶다. (0) | 2023.06.04 |
[JAVA] 백준 1978번 : 소수찾기 (0) | 2023.06.02 |