https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define MAX 51
char stack[MAX];
top = -1;
void push(char a) {
stack[++top] = a;
}
char pop(void) {
return stack[top--];
}
/* // 스택 출력 함수
void printStack(void) {
for (int i = 0; i <= top; i++) {
printf("%c", pop());
}
}
*/
int vps(char ps[]){
for (int i = 0; i<strlen(ps); i++) {
char c = ps[i];
if (c == '(') { // 여는 괄호면 push
push(c);
}
else { // 닫는 괄호일 때
if (top != -1) { // stack 이 비어있지 않으면
pop();
}
else { // stack이 비어있으면
return 0; // vps가 아님
}
}
}
if (top != -1) return 0; // 반복문이 끝나고 스택에 남아있으면 vps 아님
else return 1; // 이 외는 모두 vps 이다.
}
int main(void) {
int t; // t: PS 개수
int i; // 반복
char ps[MAX];
scanf("%d", &t);
for (i = 0; i < t; i++) {
scanf("%s", ps);
if (vps(ps)) printf("YES\n");
else printf("NO\n");
// stack 초기화
while (top != -1) {
pop();
}
}
return 0;
}
아래 티스토리 보고 공부
https://blockdmask.tistory.com/148
'잡동사니 > [2022] 회로이론' 카테고리의 다른 글
[백준/C] 10773번 제로 (0) | 2022.12.11 |
---|---|
[백준/C] 1978번 소수 찾기 (0) | 2022.12.11 |
[백준/C] 2559번 수열 (슬라이딩 윈도우, 누적합) (0) | 2022.12.11 |
[백준/C] 18258번 큐 2 (0) | 2022.12.11 |
[백준/C] 1152번 단어의 개수 (0) | 2022.12.11 |