250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(프로그래머스 c++)짝지어 제거하기 본문
728x90
반응형
스택을 이용하여 풀면 쉽게 해결할 수 있다.
s.size()만큼 반복문을 돌면서 스택에 넣어주자.
만약 스택이 비어있거나 스택의 top이 현재 s[i]와 같지 않다면
스택에 s[i] 문자를 넣어주자..!
하지만 스택의 top이 s[i]와 같다면 pop()을 해주어 같은 문자를 제거하면 된다.
반복문을 다 돌게 되었을 때, 스택이 비어있다면 모든 문자를 짝지어서 제거했기 때문에 1을 반환,
비어있지 않으면 문자가 남아있다는 뜻이므로 0을 반환하면 된다..!
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int solution(string s)
{
int answer = 0;
stack<char> stk;
for(int i = 0; i < s.size(); i++)
{
if(stk.empty() || stk.top() != s[i])
stk.push(s[i]);
else
stk.pop();
}
if(stk.empty())
return 1;
else
return 0;
}
728x90
반응형
'프로그래머스 알고리즘 > 2단계' 카테고리의 다른 글
(프로그래머스 c++)JadenCase 문자열 만들기 (0) | 2020.05.20 |
---|---|
(프로그래머스 c++)N개의 최소공배수 (0) | 2020.05.20 |
(프로그래머스 c++)올바른 괄호 (2) | 2020.05.19 |
(프로그래머스 c++)타겟 넘버 (0) | 2020.05.18 |
(프로그래머스 c++)카펫 (0) | 2020.05.18 |