코딩테스트 연습 - 짝지어 제거하기 | 프로그래머스 (programmers.co.kr)
1,000,000
이므로 알고리즘을 사용하는 것은 위험합니다.b
를 stack에 넣습니다.a
는 stack의 top인 b
와 다르므로 stack에 넣습니다.a
는 stack의 top인 a
와 같으므로 pop()
을 해줘서 제거합니다.b
는 stack의 top인 b
와 같으므로 pop()
을 해줘서 제거합니다.a
를 stack에 넣습니다.a
는 stack의 top인 a
와 같으므로 pop()
을 해줘서 제거합니다.1
을, 비어있지 않다면 0
을 반환합니다.stack.empty()
와 같습니다.#include <stack>
using namespace std;
int solution(string s) {
stack<char> stk;
for (int i = 0; i < s.length(); ++i)
(!stk.empty() && stk.top() == s[i]) ? stk.pop() : stk.push(s[i]);
return stk.empty();
}