https://www.acmicpc.net/problem/3986
지난 2-2 학기에 컴퓨테이션에서 pushdown 오토마타를 배워서인지
이 문제는 구현 아이디어를 떠올리기 쉬웠다.
풀이1(내풀이)
- 간단하다. pushdown automata 의 header 역할을 for문의 i 가 하고, 적용 아이디어 이미지 그대로 코드에 옮겼다
#include <iostream>
#include <stack>
using namespace std;
int main() {
int n;
int count = 0;
cin >> n;
while (n--)
{
string s;
stack<char> st;
cin >> s;
for (int i = 0; i < s.length(); i++)
{
if (st.size() == 0 || st.top() != s[i])
st.push(s[i]);
else if (st.top() == s[i])
st.pop();
}
if (st.size() == 0)
count++;
}
cout << count;
return 0;
}
'전공 > 알고리즘(algorithm)' 카테고리의 다른 글
[C++] 자료구조 : 큐 정리 (0) | 2024.01.10 |
---|---|
[C++] 백준(BOJ) 1918 후위표기식 (1) | 2024.01.10 |
[C++] 백준(BOJ) 10799 쇠막대기 (0) | 2024.01.10 |
[C++] 백준(BOJ) 9012 괄호 (VPS-Valid Parenthesis String) (0) | 2024.01.09 |
[C++] 백준(BOJ) 10828 스택 (1) | 2024.01.08 |