문제: https://www.acmicpc.net/problem/3986
사실 괄호 문자열 처리하는 문제와 다를 것이 전혀 없습니다. 굳이 스택을 써야 하는지도 모르겠는 문제... 지만 어쨌던 간에 스택 태그가 달려있어서 풀어봤습니다.
코드에서 '_'를 먼저 추가해서 오버플로우를 방지한 영향으로 만족 조건이 S.empty()가 아닌 S.size()==1이 된 것에 주의합시다.
난이도는 1/5. 기초 중의 기초.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <cstdio> #include <stack> #include <cstring> using namespace std; int solve() { char str[100005]; stack<char> S; S.push('_'); scanf("%s",str); int len=strlen(str); for(int i=0;i<len;i++) { if(S.top()!=str[i]) S.push(str[i]); else S.pop(); } if(S.size()==1) return 1; else return 0; } int main() { int tc,s=0; scanf("%d",&tc); while(tc--) s+=solve(); printf("%d",s); return 0; } | cs |
'Problem Solving > 문제풀이' 카테고리의 다른 글
[BOJ] 2439 탑 (0) | 2018.02.01 |
---|---|
[BOJ] 1011 Fly me to the Alpha Centauri (1) | 2018.02.01 |
[BOJ] 1918 후위표기식 (0) | 2018.02.01 |
[BOJ] 1874 스택 수열 (0) | 2018.02.01 |
[BOJ] 2841 외계인의 기타 연주 (0) | 2018.02.01 |