어흥

[프로그래머스] 올바른 괄호 (C++) 본문

알고리즘/프로그래머스

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

라이언납시오 2023. 8. 25. 11:26
728x90
반응형

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

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

programmers.co.kr

 

1. 주의할 점

-  스택을 이용해서 해결한다

- "((("와 같은 문자열을 처리할 수 있는 방법을 찾는다

 

2. 구현

- 스택을 사용하며, 현재 문자가 '('가라면 스택에 추가한다

- 현재 문자가 ')'라면 2가지 경우로 나눈다

- 첫째, 스택이 비어있다면 false를 반환한다

- 둘째, 스택이 비어있지 않다면 스택의 원소 1개를 pop 한다

- 문자열 전체를 조회했다면 이제 스택이 비어있는지 확인해서 괄호가 바르게 짝지었는지 확인한다

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

bool solution(string str)
{
    stack<char> s;
    
    for(int i=0;i<str.size();i++){
        char c = str[i];
        if(c == '(') s.push(c);
        // ')'
        else{
            if(s.empty()) return false;
            s.pop();
        }
    }
    
    return !s.empty() ? false : true;
}
728x90
반응형
Comments