백준 알고리즘(C++)

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

coding232624 2024. 3. 5. 23:40

문제

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

 

3986번: 좋은 단어

이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에

www.acmicpc.net

 

해설

인접한 수끼리의 연결이므로 스택 / 큐 등을 떠올릴 수 있음

=> 겹치지 않도록 하기 위해 같은 수가 만나면 없어진다고 생각하고 하나씩 넣어주도록 설정

코드

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
ht#include <bits/stdc++.h>
using namespace std;
 
int N,ret;
string str;
 
 
 
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    cin >> N;
    for(int i=0; i<N; i++){
        cin >> str;
        stack<char> stk;
        for(char a : str){
            if(stk.size() && stk.top() == a){
                stk.pop();
            }
            else stk.push(a);
        }
        if(stk.size() == 0) ret++;
    }
    cout << ret;
}
cs

 

댓글수0