[백준 알고리즘]/[C++]
3986번 좋은 단어 / Baekjoon BOJ 백준 3986 C++ 코드, 해설, 풀이
말하는펭귄
2020. 12. 2. 15:33
728x90
반응형
이번 포스팅은 백준 3986번 좋은 단어입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
3986번: 좋은 단어
이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에
www.acmicpc.net
교차O = 좋은 단어X
교차X = 좋은 단어O
기본 알고리즘
스택을 사용하는 문제이다.
string으로 받은 문자열에서 문자를 1개 씩 비교하면서 스택에 push할지 pop할지 선택한다.
현재 문자 값이 스택의 top과 같으면 pop
현재 문자 값이 스택의 top과 다르면 push
모두 비교 후 스택이 empty이면 좋은 단어이다.
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
35
|
#include <iostream>
#include <stack>
using namespace std;
int main() {
int N;
cin >> N;
int ans = 0;
while (N--) {
stack<char> stack;
string word;
cin >> word;
for (int i = 0; i < word.length(); i++) {
if (stack.empty()) {
stack.push(word[i]);
}
else {
if (stack.top() == word[i]) {
stack.pop();
}
else {
stack.push(word[i]);
}
}
}
if (stack.empty()) {
ans++;
}
}
cout << ans;
}
|
cs |
728x90
반응형