programmers.co.kr/learn/courses/30/lessons/12973
효율성 테스트까지 통과하기 위해서는 Stack을 이용해서 풀어야 한다.
괄호 { } 맞추기 문제, 그리고 카카오 테스트 중에 크레인 인형 뽑기와 비슷했던 문제였다.
stack의 top과 s의 idx값을 비교했을 때 같으면 stack의 top을 pop하고 같지 않다면 s의 idx값을 현재 stack에 넣어준다.
#include <iostream>
#include<string>
#include <stack>
using namespace std;
int solution(string s)
{
int answer = 0;
stack<char> Stack;
int idx = 0;
Stack.push(s[idx++]);
while (idx < s.size())
{
if (Stack.empty())
{
Stack.push(s[idx++]);
}
char s_top = Stack.top();
if (!Stack.empty() && s_top == s[idx])
{
Stack.pop();
}
else
{
Stack.push(s[idx]);
}
idx += 1;
}
if (Stack.empty())
answer = 1;
else
answer = 0;
return answer;
}
'알고리즘 & 자료구조 > 프로그래머스' 카테고리의 다른 글
[C++/알고리즘] 프로그래머스 (정수삼각형 ) (0) | 2020.10.22 |
---|---|
[C++/알고리즘] 프로그래머스 (땅따먹기) (0) | 2020.10.22 |
[C++/알고리즘] 프로그래머스 (숫자의 표현) (0) | 2020.10.10 |
[C++/알고리즘] 프로그래머스 (야근지수) (0) | 2020.10.09 |
[C++/알고리즘] 프로그래머스 (하노이의 탑) (0) | 2020.10.08 |