728x90
programmers.co.kr/learn/courses/30/lessons/12909#
스택의 대표적인 기본 문제이다.
여는 괄호 '(' 가 들어오면 스택에 push 하고
닫는 괄호 ')' 가 들어오면 스택에서 pop 하되,
스택이 비어있지 않아야하며, 동시에 스택의 top 이 여는 괄호 '(' 여야만 짝을 맞춰서 pop 할 수 있다.
그렇지 않은 경우라면 닫는 괄호 ')' 를 스택에 push 한다
(짝을 맞춰서 pop 해야된다는것, 그리고 닫는 괄호 ')' 도 스택에 push 될 수 있다는 점에 유의)
- c++
#include <string>
#include <stack>
using namespace std;
bool solution(string s) {
bool answer = true;
stack<char> st;
for (int i = 0; i < s.length(); ++i) {
if (s[i] == '(') st.push(s[i]);
else {
if (!st.empty() && st.top() == '(') st.pop();
else st.push(s[i]);
}
}
if (!st.empty()) answer = false;
return answer;
}
|
cs |
728x90
'PS' 카테고리의 다른 글
프로그래머스 - 짝지어 제거하기 (0) | 2020.12.08 |
---|---|
프로그래머스 - 땅따먹기 (0) | 2020.12.08 |
프로그래머스 - 단체사진 찍기 (0) | 2020.12.07 |
프로그래머스 - 다음 큰 숫자 (0) | 2020.12.07 |
프로그래머스 - 기능 개발 (0) | 2020.12.07 |