백준 알고리즘 문제 풀이 c/c++ -9012-

한창희·2021년 8월 19일
0

백준 알고리즘

목록 보기
11/16

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

  • 스택을 활용하면 쉽게 풀 수 있는 문제
  • 닫는 괄호가 들어올 시 스택 상단에 열린괄호가 있다면 스택에서 pop
  • 마지막에 스택이 비어있다면 VPS 성립

#include <stdio.h>
#include <stack>
#include <string.h>

using namespace std;

int main(){
	
	int T; // 테스트 케이스 수
	scanf("%d", &T);

	for (int i = 0; i < T; i++) {

		stack<char> s; // 스택
		char arr[55]; // 괄호 문자열

		scanf("%s", arr);
		int len = strlen(arr);

		for (int j = 0; j < len; j++) {
			if (arr[j] == '(')
				s.push(arr[j]);
			else {
				if (s.empty()) {
					s.push(arr[j]);
				}
				else {
					if (s.top() == '(') {
						s.pop();
					}
					else {
						s.push(arr[j]);
					}
				}
			}
		}
		if (s.empty())
			printf("YES\n");
		else
			printf("NO\n");
	}
	

	return 0;
}

<스택>

참고링크
https://coding-factory.tistory.com/597


  • #include < stack > // 헤더에 선언 필요

  • stack.push(x)

  • stack.pop()

  • stack.empty()

  • stack.size()

profile
매 순간 최선을 다하자

0개의 댓글