C/Algorithm with 백준

9012번 괄호 (스택활용)

OHDONGHYEON 2022. 5. 3. 19:33

이 문제는 스택을 활용하여 풀어보았다. 스택을 활용하니 너무 쉬웠고,

고민하는 시간이 많기는 했다.

앞으로는 이러한 알고리즘 기법들을 생각해보고 풀어야겠다고 생각했다

겨우 규칙을 찾아내고 스택을 사용하니 성공했다.

백준 링크는 아래와 같다.

https://www.acmicpc.net/problem/9012

아래는 내가 간단하게 써본 코드이다.

#include <stdio.h>

int t;
char arr[100];
int check[100];
int size;

int main()
{
	int i;
	scanf("%d", &t);
	while(t--) {
		scanf("%s", arr);
		for(i=0; arr[i] != NULL; i++) {
			check[size++] = arr[i];
			if(size > 1 && check[size-2] == '(' && check[size-1] == ')') {
				size -= 2;
			}
		}
		if(size == 0) {
			printf("YES\n");
		} else {
			printf("NO\n");
		}
		size = 0;
	}
}