728x90
programmers.co.kr/learn/courses/30/lessons/12909#
코딩테스트 연습 - 올바른 괄호
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호
programmers.co.kr
스택의 대표적인 기본 문제이다.
여는 괄호 '(' 가 들어오면 스택에 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 |