문자열을 스택처럼 pop_back 연산하여 풀었습니다.
[문제 본문]
더보기
문제
상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다.
폭발은 다음과 같은 과정으로 진행된다.
- 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다.
- 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다.
- 폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다.
상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보려고 한다. 남아있는 문자가 없는 경우가 있다. 이때는 "FRULA"를 출력한다.
폭발 문자열은 같은 문자를 두 개 이상 포함하지 않는다.
출력
첫째 줄에 모든 폭발이 끝난 후 남은 문자열을 출력한다.
W3sicHJvYmxlbV9pZCI6Ijk5MzUiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWJiMzhcdWM3OTBcdWM1ZjQgXHVkM2VkXHViYzFjIiwiZGVzY3JpcHRpb24iOiI8cD5cdWMwYzFcdWFkZmNcdWM3NzRcdWIyOTQgXHViYjM4XHVjNzkwXHVjNWY0XHVjNWQwIFx1ZDNlZFx1YmMxYyBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDQgXHVjMmVjXHVjNWI0IFx1YjE5M1x1YzU1OFx1YjJlNC4gXHVkM2VkXHViYzFjIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NCBcdWQzZWRcdWJjMWNcdWQ1NThcdWJhNzQgXHVhZGY4IFx1YmIzOFx1Yzc5MFx1YjI5NCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM1ZDBcdWMxMWMgXHVjMGFjXHViNzdjXHVjOWMwXHViYTcwLCBcdWIwYThcdWM3NDAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQwIFx1ZDU2OVx1Y2NkMFx1YzljMFx1YWM4YyBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDNlZFx1YmMxY1x1Yzc0MCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzQwIFx1YWNmY1x1YzgxNVx1YzczY1x1Yjg1YyBcdWM5YzRcdWQ1ODlcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHViYjM4XHVjNzkwXHVjNWY0XHVjNzc0IFx1ZDNlZFx1YmMxYyBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDQgXHVkM2VjXHVkNTY4XHVkNTU4XHVhY2UwIFx1Yzc4OFx1YjI5NCBcdWFjYmRcdWM2YjBcdWM1ZDAsIFx1YmFhOFx1YjRlMCBcdWQzZWRcdWJjMWMgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzc0IFx1ZDNlZFx1YmMxY1x1ZDU1OFx1YWM4YyBcdWI0MWNcdWIyZTQuIFx1YjBhOFx1Yzc0MCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDQgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1Yzc3NFx1YzViNCBcdWJkOTlcdWM1ZWMgXHVjMGM4XHViODVjXHVjNmI0IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0NCBcdWI5Y2NcdWI0ZTBcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YzBjOFx1Yjg1YyBcdWMwZGRcdWFlMzQgXHViYjM4XHVjNzkwXHVjNWY0XHVjNWQwIFx1ZDNlZFx1YmMxYyBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NzQgXHVkM2VjXHVkNTY4XHViNDE4XHVjNWI0IFx1Yzc4OFx1Yzc0NCBcdWMyMThcdWIzYzQgXHVjNzg4XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWQzZWRcdWJjMWNcdWM3NDAgXHVkM2VkXHViYzFjIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM1ZDAgXHVjNWM2XHVjNzQ0IFx1YjU0Y1x1YWU0Y1x1YzljMCBcdWFjYzRcdWMxOGRcdWI0MWNcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjMGMxXHVhZGZjXHVjNzc0XHViMjk0IFx1YmFhOFx1YjRlMCBcdWQzZWRcdWJjMWNcdWM3NzQgXHViMDVkXHViMDljIFx1ZDZjNFx1YzVkMCBcdWM1YjRcdWI1YTQgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzc0IFx1YjBhOFx1YjI5NFx1YzljMCBcdWFkNmNcdWQ1NzRcdWJjZjRcdWI4MjRcdWFjZTAgXHVkNTVjXHViMmU0LiBcdWIwYThcdWM1NDRcdWM3ODhcdWIyOTQgXHViYjM4XHVjNzkwXHVhYzAwIFx1YzVjNlx1YjI5NCBcdWFjYmRcdWM2YjBcdWFjMDAgXHVjNzg4XHViMmU0LiBcdWM3NzRcdWI1NGNcdWIyOTQgJnF1b3Q7RlJVTEEmcXVvdDtcdWI5N2MgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQzZWRcdWJjMWMgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQwIFx1YWMxOVx1Yzc0MCBcdWJiMzhcdWM3OTBcdWI5N2MgXHViNDUwIFx1YWMxYyBcdWM3NzRcdWMwYzEgXHVkM2VjXHVkNTY4XHVkNTU4XHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHViYjM4XHVjNzkwXHVjNWY0XHVjNzU4IFx1YWUzOFx1Yzc3NFx1YjI5NCAxXHViY2Y0XHViMmU0IFx1ZDA2Y1x1YWM3MFx1YjA5OCBcdWFjMTlcdWFjZTAsIDEsMDAwLDAwMFx1YmNmNFx1YjJlNCBcdWM3OTFcdWFjNzBcdWIwOTggXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI0NThcdWM5ZjggXHVjOTA0XHVjNWQwIFx1ZDNlZFx1YmMxYyBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWFlMzhcdWM3NzRcdWIyOTQgMVx1YmNmNFx1YjJlNCBcdWQwNmNcdWFjNzBcdWIwOTggXHVhYzE5XHVhY2UwLCAzNlx1YmNmNFx1YjJlNCBcdWM3OTFcdWFjNzBcdWIwOTggXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI0NTAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQwIFx1YmFhOFx1YjQ1MCBcdWM1NGNcdWQzMGNcdWJjYjMgXHVjMThjXHViYjM4XHVjNzkwXHVjNjQwIFx1YjMwMFx1YmIzOFx1Yzc5MCwgXHVjMjJiXHVjNzkwIDAsIDEsIC4uLiwgOVx1Yjg1Y1x1YjljYyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHViYWE4XHViNGUwIFx1ZDNlZFx1YmMxY1x1Yzc3NCBcdWIwNWRcdWIwOWMgXHVkNmM0IFx1YjBhOFx1Yzc0MCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDQgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6Ijk5MzUiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJFS1NQTE9aSUpBIiwiZGVzY3JpcHRpb24iOiI8cD5NaXJrbyBsaWtlcyB0byBwbGF5IHdpdGggc3RyaW5ncyBvZiBjaGFyYWN0ZXJzLCBidXQgdGhpcyB0aW1lIGhlIGhhcyB0YWtlbiBpdCB0b28gZmFyICZuZGFzaDsgaGUgcHV0IGFuICZsZHF1bztleHBsb3Npb24mcmRxdW87IGluIHRoZSBzdHJpbmchIEFuIGV4cGxvc2lvbiBpcyBhIHNlcmllcyBvZiBjaGFyYWN0ZXJzIHdoaWNoLCBpZiBmb3VuZCBpbiB0aGUgdmljaW5pdHkgb2YgZmlyZSwgZXhwbG9kZXMgYW5kIHN0YXJ0cyBhIGNoYWluIHJlYWN0aW9uLiZuYnNwOzxcL3A+XHJcblxyXG48cD5NaXJrbywgYmVpbmcgYXMgbmVnbGlnZW50IGFzIGhlIHVzdWFsbHkgaXMsIGZvcmdvdCB0aGF0IGhpcyBzdHJpbmcgY29udGFpbmVkIGFuIGV4cGxvc2lvbiBhbmQgcGxhY2VkIGl0IG5lYXIgYSBjYW5kbGVsaWdodC4gVGh1cyB0aGUgY2hhaW4gcmVhY3Rpb24gYmVnYW4uJm5ic3A7PFwvcD5cclxuXHJcbjxwPlRoZSBjaGFpbiByZWFjdGlvbiB0YWtlcyBwbGFjZSBpbiB0aGUgZm9sbG93aW5nIHdheTombmJzcDs8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5pZiBhIHN0cmluZyBjb250YWlucyBleHBsb3Npb25zLCB0aGV5IGFsbCBleHBsb2RlIGFuZCBhIG5ldyBzdHJpbmcgaXMgZm9ybWVkIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIHBpZWNlcyB3aXRob3V0IHRoZSBleHBsb2RpbmcgcGFydHMmbmJzcDs8XC9saT5cclxuXHQ8bGk+dGhpcyBjb25jYXRlbmF0aW9uIGNvdWxkIHBvc3NpYmx5IGNyZWF0ZSBuZXcgZXhwbG9zaW9ucyZuYnNwOzxcL2xpPlxyXG5cdDxsaT50aGUgY2hhaW4gcmVhY3Rpb24gcmVwZWF0cyB3aGlsZSB0aGVyZSBhcmUgZXhwbG9zaW9ucyBpbiB0aGUgc3RyaW5nJm5ic3A7PFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+Tm93IE1pcmtvIHdhbnRzIHRvIGtub3cgd2hldGhlciBhbnl0aGluZyB3aWxsIGJlIGxlZnQgYWZ0ZXIgdGhpcyBzZXJpZXMgb2YgY2hhaW4gcmVhY3Rpb25zLiBJZiBub3RoaW5nIHJlbWFpbnMsIG91dHB1dCAmbGRxdW87RlJVTEEmcmRxdW87ICh3aXRob3V0IHF1b3RlcykuIElmLCBieSBhbnkgY2hhbmNlLCBzb21ldGhpbmcgaXMgbGVmdCwgb3V0cHV0IHRoZSBmaW5hbCBzdHJpbmcgcmVtYWluaW5nIGFmdGVyIGFsbCB0aGUgcmVhY3Rpb25zLiZuYnNwOzxcL3A+XHJcblxyXG48cD5QbGVhc2Ugbm90ZTogVGhlIGV4cGxvc2lvbiB3aWxsIG5vdCBjb250YWluIHR3byBlcXVhbCBjaGFyYWN0ZXJzLiZuYnNwOzxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgaW5wdXQgY29udGFpbnMgTWlya28mIzM5O3Mgc3RyaW5nLCAoMSAmbGU7IHxNaXJrbyYjMzk7cyBzdHJpbmd8ICZsZTsgMSAwMDAgMDAwKS4mbmJzcDs8XC9wPlxyXG5cclxuPHA+VGhlIHNlY29uZCBsaW5lIG9mIGlucHV0IGNvbnRhaW5zIHRoZSBleHBsb3Npb24gc3RyaW5nLCAoMSAmbGU7IHxleHBsb3Npb258ICZsZTsgMzYpLiZuYnNwOzxcL3A+XHJcblxyXG48cD5Cb3RoIE1pcmtvJiMzOTtzIHN0cmluZyBhbmQgdGhlIGV4cGxvc2lvbiBzdHJpbmcgY29uc2lzdCBvZiB1cHBlcmNhc2UgYW5kIGxvd2VyY2FzZSBsZXR0ZXJzIG9mIHRoZSBFbmdsaXNoIGFscGhhYmV0IGFuZCBkaWdpdHMgMCwgMSwgJmhlbGxpcDsgOS4mbmJzcDs8XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5UaGUgZmlyc3QgYW5kIG9ubHkgbGluZSBvZiBvdXRwdXQgbXVzdCBjb250YWluIHRoZSBmaW5hbCBzdHJpbmcgcmVtYWluaW5nIGFmdGVyIGFsbCB0aGUgcmVhY3Rpb25zIGFzIHN0YXRlZCBpbiB0aGUgdGFzay4mbmJzcDs8XC9wPlxyXG4iLCJoaW50IjoiPHA+Q2xhcmlmaWNhdGlvbiBvZiB0aGUgc2Vjb25kIGV4YW1wbGU6IEZpcnN0bHksIHRoZSBib21icyBvbiBwb3NpdGlvbnMgMSBhbmQgNiBleHBsb2RlLiBUaGVuIHdlIGFyZSBsZWZ0IHdpdGggKioqKjEqKioqMmFiICh3aGVyZSAqIG1hcmtzIHRoZSBjaGFyYWN0ZXIgdGhhdCBleHBsb2RlZCkgYW5kIHdoZW4gdGhhdCBzdHJpbmcgaXMgcHV0IHRvZ2V0aGVyLCB3ZSBnZXQgMTJhYi4gU2FkbHksIHRoYXQgaXMgYW4gZXhwbG9zaW9uIGFsbCBvdmVyIGFnYWluIHNvIGl0IGRpc2FwcGVhcnMuPFwvcD5cclxuIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIn1d
[푼 코드]
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
string str, bomb, result = "";
cin >> str;
cin >> bomb;
int bombNum = bomb.length() - 1;
for (int i = 0; i < str.length(); i++)
{
result += str[i];
if (result[result.length() - 1] == bomb[bombNum])
{
if (result.length() >= bomb.length())
{
int countNum = 1;
for (int j = bombNum - 1; j >= 0; j--)
{
if (result[result.length() - 1 - (bombNum - j)] != bomb[j])
break;
countNum++;
}
if (countNum == bomb.length())
{
for (int k = 0; k < bomb.length(); k++)
{
result.pop_back();
}
}
}
}
}
if (result.empty()) cout << "FRULA";
else cout << result;
return 0;
}
#백준9935 #백준문자열폭팔 #solved.ac #자료구조#문자열 #문자열pop_back