아이디어는 스택에 문자열을 하나씩 받아오면서 문자열의 끝자리가 폭발 문자열의 끝자리와 같으면
폭발 가능성을 검사한다.
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 36 37 | #include <iostream> #include <string> #include <stdio.h> #pragma warning (disable : 4996) using namespace std; int main() { string str, bomb; char stack1[1000001]; cin >> str >> bomb; int index = 0; int strlen = str.length(); int bomblen = bomb.length(); for(int i = 0; i < strlen; i++){ stack1[index++] = str[i]; if (str[i] == bomb[bomblen - 1]) { //compare bool check = false; for (int j = bomblen - 1, k = index - 1; j >= 0; j--, k--) if (bomb[j] != stack1[k]) { check = true; break; } if (!check) index -= bomblen; } } if (index != 0) for (int i = 0; i < index; i++) printf("%c", stack1[i]); else printf("FRULA"); return 0; } | cs |
'Algorithm Problems > BOJ' 카테고리의 다른 글
[1730번] 판화 - 비트마스크, 배열[C++] (0) | 2017.02.13 |
---|---|
[11657번] Time Machine 타임머신 - Bellman-Ford Algorithm[C++]☆ (0) | 2017.01.17 |
[1158번] Josephus Problem 조세퍼스 - Deque [C++] ☆ (0) | 2017.01.03 |
[5397번] Keylogger 키로거 - Stack[C++] (0) | 2017.01.02 |
[10817번] Three Interger 세 수 - if condition[C++] (0) | 2017.01.02 |