BOJ - 9012 - 괄호

ggh·2022년 5월 11일
0

백준

목록 보기
11/112

BOJ - 9012 - 괄호

문제


9012번: 괄호

문제 개념


  • 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 주어진다.
  • 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다.
  • 각 테스트 데이터의 첫째 줄에는 괄호 문자열이 한 줄에 주어진다. 하나의 괄호 문자열의 길이는 2 이상 50 이하이다.

즉. 올바른 VPS 괄호 여닫이여야만 한다.

구현


#include <iostream>
#include <vector>

using namespace std;

// (( )) (( ))
// 왼 오른의 비율을 따져 결과값 표츌 

int main()
{
    int num; 
    vector<string> OrderList; // input
    vector<string> answer;    // output
    cin >> num;    
    for(int i=0; i < num; i++)
    {
        string temp; 
        cin >> temp;
        OrderList.push_back(temp);
    }
    for(int i=0; i < OrderList.size(); i++)
    {
        int tmp = 0;
        for(int j=0; j < OrderList[i].size(); j++)
        {
            tmp += OrderList[i][j] == '(' ? 1 : -1;
            if(tmp < 0)
                break;
        }
        string result = tmp == 0 ? "YES" : "NO";
        answer.push_back(result);
    }
    for(auto el : answer)
        cout << el << endl; 
}

SOL


  • 스택 구조의 조건을 만들어 VPS를 판단한다.
    tmp += OrderList[i][j] == '(' ? 1 : -1;
    • 단. ‘ ) ‘의 수 즉 tmp < 0 이면 조건문을 멈춰 VPS가 아님을 알린다.

Reference & 다른 PS 모음집


https://github.com/ggh-png/PS

profile
See you in a minute. : )

0개의 댓글