(백준/C++) 3986 좋은 단어

nemostarrrrr·2021년 8월 31일
0

백준

목록 보기
3/7

https://www.acmicpc.net/problem/3986

문제 해석(시간 제한 1초)

'좋은 단어'를 세는 것이 목표입니다. 여기서 말하는 좋은 단어란, 같은 글자끼리 아치형 곡선을 그었을 때 곡선이 겹치는 부분이 하나도 없는 단어를 의미합니다.

문제에서는 좋은 단어라고 표현하지만 '괄호'라고 생각하면 매우 쉬운 문제가 될 것 같습니다.

괄호를 해석하는 스택을 만들어 괄호의 짝이 모두 맞아 떨어져서 스택이 비게 된다면 좋은 단어가 되는 것입니다.

#include <iostream>
#include <algorithm>
#include <stack>
#include <string>

using namespace std;

int t, cntA = 0, cntB = 0, cnt = 0;
string word;
bool oddflag = false; // true면 A가 홀수, false면 B가 홀수

int main() {
    cin >> t;
    while(t--) {
        stack<char> s;
        cin >> word;
        for(int i = 0; i < word.size(); i++) {
            if(s.empty()) {
                s.push(word[i]);
            } else {
                if(s.top() == word[i]) {
                    s.pop();
                } else {
                    s.push(word[i]);
                }
            }
        }
        if(s.empty()) cnt++;
    }
    cout << cnt << endl;
    return 0;
}
profile
노력하며 살려고 노력하는 사람

0개의 댓글