스택처럼 '(' 일때 push하고, ')' 일때 pop 하면 되겠다. 굳이 스택을 구현하지 않고, '(' 일때는 +1, ')' 일때는 -1 을 해서 0이 되면 VPS로 판단하기로 했다. 검사하는 도중에 0보다 작아지면 for문을 탈출한다. VPS 는 1 이후 -1 이 나와서 0이 되어야 하기 때문! -1이 먼저 나오거나 -1이 1보다 어러번 나오면 안된다.
# 제출 코드
#include <stdio.h>
int main(){
int T; // 테스트 데이터 수
char PS[55]; // 괄호 문자열
int N; // VPS 판별
int i;
scanf("%d ", &T);
while(T--){
N = 0;
scanf("%s", PS);
for(i=0; PS[i]; i++){
if (PS[i] == '(') N++;
else N--;
if(N<0) break;
}
if (N == 0) printf("YES\n");
else printf("NO\n");
}
return 0;
}
반응형
'Computer Science&Engineering > 코딩테스트' 카테고리의 다른 글
[백준 1406] 에디터 (0) | 2021.02.24 |
---|---|
[백준 10799] 쇠막대기 (0) | 2021.02.23 |
[백준 10828] 스택 (0) | 2021.02.23 |
[백준 별찍기 1~9] 쉬운 별찍기 모음 #별찍기꿀팁 #별찍기9개 #피라미드 #역피라미드 #모래시계찍기 #마름모찍기 (1) | 2021.02.22 |
[백준 10818] 최소, 최대 구하기 (0) | 2021.02.21 |