250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(프로그래머스 c++)올바른 괄호 본문
728x90
반응형
스택을 이용하여 올바른 괄호인지 판단하자..!
#include <stack>으로 하여 스택을 사용할 수 있게 하였다.
반복문을 s.size()만큼 돌면서 괄호를 스택에 넣어주도록 하였다.
s[i] == '(' 이면
stk에 '('를 넣어준다.
만약 ')' 이라면
한번 더 조건을 검사해야한다.
현재 stk가 비어있지 않고, stk.top()이 '('라면
현재까지는 올바른 괄호이므로 stk.pop()을 해준다.
하지만 위 조건이 맞지 않는다면 그대로 ')'을 넣어준다.
s.size()만큼 돌면서 스택에 넣어주고 빼는 동작을 반복한다.
for문을 빠져나와 skt가 비어있는지 검사하자..!
만약 비어있으면 올바른 괄호이므로 true를 반환하고,
아니면 올바른 괄호가 아니므로 false를 반환한다..!
#include<string>
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
bool solution(string s)
{
bool answer = true;
stack<char> stk;
for(int i = 0; i < s.size(); i++)
{
if(s[i] == '(')
stk.push('(');
else
{
if(!stk.empty() && stk.top() == '(')
stk.pop();
else
stk.push(')');
}
}
if(stk.empty())
return true;
else
return false;
}
728x90
반응형
'프로그래머스 알고리즘 > 2단계' 카테고리의 다른 글
(프로그래머스 c++)N개의 최소공배수 (0) | 2020.05.20 |
---|---|
(프로그래머스 c++)짝지어 제거하기 (0) | 2020.05.20 |
(프로그래머스 c++)타겟 넘버 (0) | 2020.05.18 |
(프로그래머스 c++)카펫 (0) | 2020.05.18 |
(프로그래머스 c++)구명보트 (0) | 2020.05.15 |