코딩테스트/프로그래머스

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

쪼르뚜 2024. 7. 10. 16:26
728x90
반응형


🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


👩‍💻 코드

#include<string>
#include<stack>

using namespace std;

bool solution(string s){
    stack<char> brackets;

    for(const auto& c : s){
        if(c == '('){
            brackets.push(c);
        }else{
            if(brackets.empty()){
                return false;
            }
            
            if(brackets.top() == '('){
                brackets.pop();
            }
        }
    }

    return brackets.empty() ? true : false;
}

📝 풀이

문자열에는 '('와 ')' 문자밖에 존재 하지 않으니 if else 문을 이용했다.
'(' 괄호의 경우는 stack에 넣고 ')' 괄호의 경우 비어있으면 짝이 맞지 않으니 false를  return 한다.

stack에 '(' 괄호가 있다면 괄호가 한 쌍인 것이니 stack의 '('을 pop한다.

s문자열 끝까지 비교 후 stack이 비어있다면 모든 괄호가 쌍이 맞다는 것이니 true를 return 한다.

728x90
반응형