BOJ - 괄호 9012

2025. 1. 4. 15:46·코딩테스트
반응형

 

해결방법

스택을 사용한 문제이다.

구조는 다음과 같다.

(을 만나면 스택을 추가. )을 만나면 스택의 top을 제거.

만약 스택이 없는데 )을 만나는 경우 flag를 설정하고 루프를 끝내버린다.

 

만약 스택이 비어있지 않거나 flag가 올라가 있다면 잘못된 경우이므로 NO가 출력되고 그렇지 않다면 YES가 출력되는 구조이다.

 

정답 코드

#include <iostream>
#include <stack>

using namespace std;

int main()
{
	int TestCase, count = 0, flag = 0;
	string PS;

	cin >> TestCase;

	for (int i = 0; i < TestCase; i++)
	{
		stack<char> stack;
		cin >> PS;
		
		for (int j = 0; j < PS.size(); j++)
		{
			if (PS[j] == '(')
			{
				stack.push(PS[j]);
			}
			else if (PS[j] == ')')
			{
				if (stack.empty())
				{
					flag = 1;
					break;
				}
				else
				{
					stack.pop();
				}
			}
		}

		if (!stack.empty() || flag == 1)
		{
			cout << "NO" << endl;
		}
		else
		{
			cout << "YES" << endl;
		}

		flag = 0;
	}

	return 0;
}
반응형

'코딩테스트' 카테고리의 다른 글

BOJ - 수 찾기 1920  (0) 2025.01.04
BOJ - 스택 10828  (1) 2025.01.04
BOJ - 큐 10845  (0) 2025.01.04
BOJ - 카드2 2164  (0) 2025.01.04
BOJ - 숫자카드 2 10816  (0) 2025.01.04
'코딩테스트' 카테고리의 다른 글
  • BOJ - 수 찾기 1920
  • BOJ - 스택 10828
  • BOJ - 큐 10845
  • BOJ - 카드2 2164
skajalf
skajalf
skajalf 님의 블로그 입니다.
  • skajalf
    skajalf 님의 블로그
    skajalf
  • 전체
    오늘
    어제
    • 분류 전체보기 (153) N
      • UNITY (6)
        • FanGame (6)
        • Portfolio (0)
      • UnReal (0)
      • DirectX (0)
      • 코딩테스트 (113) N
      • Programming (34)
        • C C# C++ (9)
        • 디자인 패턴 (0)
        • 자료구조 & 알고리즘 (3)
        • 기타 (22)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    다들 아는거 굳이 적을 이유가 있을까..?
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
skajalf
BOJ - 괄호 9012
상단으로

티스토리툴바