[백준 BOJ 9012] 괄호
2020. 2. 14. 00:03ㆍBOJ
반응형
백준 링크
https://www.acmicpc.net/problem/9012
9012번: 괄호
문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc
www.acmicpc.net
풀이
- 기본적인 스택문제이다
- 스택이 비어있지 않고, top이 'C'이며 현재 문자가 ')'이면 pop
- 그외에는 push
- 마지막에 스택이 비어있다면 YES, 남아있으면 NO
코드
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
char a[55];
scanf("%d",&n);
for(int t=0;t<n;t++){
stack<char> s;
scanf("%s",a);
int l=strlen(a);
for(int i=0;i<l;i++){
if(!s.empty()&&s.top()=='('&&a[i]==')'){
s.pop();
}
else s.push(a[i]);
}
if(s.empty()) printf("YES\n");
else printf("NO\n");
}
}
개선점
- 굳이 스택을 쓰지않고 각 괄호의 개수만 세어주어도 된다
반응형
'BOJ' 카테고리의 다른 글
[백준 BOJ 10868] 최솟값 (0) | 2020.02.21 |
---|---|
[백준 BOJ 1766] 문제집 (0) | 2020.02.19 |
[백준 BOJ 1916] 최소비용 구하기 (0) | 2020.02.17 |
[백준 BOJ 2294] 동전 2 (0) | 2020.02.14 |