반응형
stack을 사용하는 간단한 문제였습니다
풀이방법
* stack s가 비어있을 경우 s.top() 함수를 호출한다면 오류가 발생하므로 조심해야 합니다.
모든 단어를 검사하면서 stack이 비어있지 않다면 s.top != 단어인 경우엔 push, s.top != 한 단어인 경우엔 pop해주면 됩니다.
마지막에 stack이 비어있다면 좋은 단어입니다.
Code
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,ans=0;
cin >> n;
while(n--){
string word;
stack <char> s;
cin >> word;
for(int i = 0; i < word.size(); i++){
if(!s.size()) s.push(word[i]);
else {
if(s.top()!=word[i]) s.push(word[i]);
else s.pop();
}
}
if(s.empty()) ans++;
}
cout << ans <<'\n';
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 2346번 : 풍선 터뜨리기 답 (0) | 2021.01.31 |
---|---|
(C++) - 백준(BOJ) 5928번 : Contest Timing답 (0) | 2021.01.26 |
(Python) - 백준(BOJ) 2338번 : 긴자리 계산 답 (0) | 2021.01.20 |
(C++) - 백준(BOJ) 1935번 : 후위 표기식 2 답 (0) | 2021.01.15 |
(C++) - 백준(BOJ) 1972번 : 놀라운 문자열 답 (0) | 2021.01.13 |