728x90

목차.

  1. 문제
  2. 코드

 

문제

 

백준-9012번-괄호
백준 9012번 문제 괄호

 

이번 문제는 Stack을 사용해서 풀 수 있지만 다른 방법으로도 간단하게 풀 수 있습니다.

 

코드

 

#include<iostream>
#include<stack>
#include<string>
using namespace std;

string valid(string s)
{
    int cnt = 0;
    for (char ch : s)
    {
        if (ch == '(')
            cnt++;
        else
            cnt--;
        if (cnt < 0)
            return "NO";
    }
    if (cnt == 0)
        return "YES";
    else
        return "NO";
}
int main()
{

    int testCase;
    cin >> testCase;
    while (testCase--)
    {
        string str;
        cin >> str;
        cout << valid(str)<<'\n';

    }
    return 0;
}

 

입력받은 string(괄호)를 valid 함수의 매개변수로 전달해 줍니다.

valid 함수에서는 전달받은 string에서 '('이라면 cnt를 1 증가시키고 아니라면 1 감소시킵니다.

이때 1이 감소되어 0보다 작다면 잘못된 괄호이기 때문에 No를 return 시켜줍니다.

반복문이 끝난 뒤 cnt가 0이라면 정상적인 괄호, 아니라면 잘못된 괄호로 return 해주었습니다.

728x90

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

[C++][Stack] 백준 1406번 : 에디터  (0) 2023.09.29
[C++] 백준 1874번 : 스택 수열  (0) 2023.09.29
[C++][Stack] 백준 10828번 : 스택(Stack)  (0) 2023.09.27
C++ : 최빈값 구하기  (0) 2023.09.15
C++ : 분수의 덧셈  (0) 2023.09.14

+ Recent posts