coding test - C++/Programmers

Programmers / 올바른 괄호 - 스택 / C++

sillon 2026. 2. 7. 19:29
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 올바른 괄호 - 스택

문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=cpp

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


나의 풀이

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

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

    for (char x : s) {
        if (x == '('){ 
            if (stack.empty()){
                stack.push_back(x);
                }
            else{
                if (stack.back() == '('){
                    stack.push_back(x);
                }
                }
        }
        else{
            if (stack.empty()){return false;}
            else{
                if (stack.back() == '('){
                    stack.pop_back();
                }
            }
        }
    }
    
    if (stack.empty()){
        return true;
    }
    else{
        return false;
    }
}

 

 

스택이 올바른 괄호 '()' 쌍을 맞추는지 확인

 

() 로 제대로 닫히면 스택에서 팝해주고

아니면 쌓기

 

) 가 스택에서 제일 처음 오면 처음부터 잘못되었으므로 false 반환

 

728x90
반응형