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

Seulguo·2022년 10월 4일
0

Algorithm

목록 보기
172/185
post-thumbnail

🐣 문제

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


🐤 풀이

  1. '('이면 스텍에 넣어준다.
  2. ')'일 때는, 스텍이 비어있지 않고 top이 '('이면 올바른 괄호이므로 pop한다.
  3. 그렇지 않으면 ')'를 스텍에 넣어준다.
  4. 반복문을 빠져나와 stack이 비어있으면 true를, 아니면 flase를 리턴한다.

🐥 코드

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

bool solution(string s){
    stack <char> st;
    
    for(int i = 0; i < s.size(); i++){
        if(s[i] == '(') st.push(s[i]);
        else{
            if(!st.empty() && st.top() == '(') st.pop();
            else st.push(s[i]);
        }
    }
    
    if(st.empty()) return true;
    else return false;
}

0개의 댓글