[C++][프로그래머스 12909] 올바른 괄호

PublicMinsu·2022년 11월 25일
0

문제

접근 방법

여는 괄호보다 닫는 괄호가 많아지면 안 되는 것이 규칙이다. 만약 닫는 괄호가 여는 괄호보다 많아지면 false를 반환하고 모두 확인했는데 괄호의 짝이 안 맞는다면 false를 반환하면 된다.

코드

#include <string>

using namespace std;

bool solution(string s)
{
    int left = 0, right = 0;
    bool answer = true;
    for (char c : s)
    {
        if ('(' == c)
        {
            ++left;
        }
        else
        {
            ++right;
            if (right > left)
                return false;
        }
    }
    if (right != left)
        return false;
    return true;
}

풀이

left, right로 나누어 괄호를 세고 닫는 괄호를 셀 때 여는 괄호보다 많으면 잘못된 것으로 false를 반환해준다. 모든 반복문을 돌고 난 뒤 left와 right가 다를 시 짝이 안 맞는 것이니 false를 반환한다.
조건문에서 안 걸러졌다면 문제가 없다는 것으로 true를 반환한다.

profile
연락 : publicminsu@naver.com

0개의 댓글