본문 바로가기

Problem Solving/문제풀이

[BOJ] 3986 좋은 단어

문제: 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()==1return 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