Deep Learning study
백준 9935문제 본문
반응형
#include <cstdio>
#include <stack>
#include <cstring>
using namespace std;
char a[1000001];
bool erased[1000001];
char b[100];
int main() {
scanf("%s",a);
scanf("%s",b);
int n = strlen(a);
int m = strlen(b);
if (m == 1) {
for (int i=0; i<n; i++) {
if (a[i] == b[0]) {
erased[i] = true;
}
}
} else {
stack<pair<int,int>> s;
for (int i=0; i<n; i++) {
if (a[i] == b[0]) {
s.push(make_pair(i,0));
} else {
if (!s.empty()) {
auto p = s.top();
if (a[i] == b[p.second+1]) {
s.push(make_pair(i,p.second+1));
if (p.second+1 == m-1) {
for (int k=0; k<m; k++) {
auto p = s.top();
erased[p.first] = true;
s.pop();
}
}
} else {
while (!s.empty()) {
s.pop();
}
}
}
}
}
}
bool printed = false;
for (int i=0; i<n; i++) {
if (erased[i]) continue;
printf("%c",a[i]);
printed = true;
}
if (!printed) {
printf("FRULA\n");
}
return 0;
}
백준 9935번 문제풀이입니다. !
반응형
'백준 문제 코드' 카테고리의 다른 글
백준 13147문제 (0) | 2019.09.25 |
---|---|
백준 11279문제 (0) | 2019.09.25 |
백준 5588문제 (0) | 2019.09.24 |
백준 2864문제 (0) | 2019.09.24 |
백준 11780문제 (0) | 2019.09.23 |
Comments