반응형
📖 문제
📋 코드
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
vector<char> v;
string s, bomb;
int main(){
cin >> s >> bomb;
int s_size = (int)s.size();
int bomb_size = (int)bomb.size();
for (int i = 0; i < s_size; i++)
{
v.push_back(s[i]);
if((int)v.size() >= bomb_size){
bool flag = true;
for (int i = 0; i < bomb_size; i++)
{
// 문자열폭탄인지 판별
if(v[v.size()-bomb_size+i] != bomb[i]){
flag = false;
break;
}
}
// 문자열 폭발
if(flag){
for (int i = 0; i < bomb_size; i++){
v.pop_back();
}
}
}
}
if(v.empty()){
cout << "FRULA";
}else{
for (int i = 0; i < (int)v.size(); i++){
cout << v[i];
}
}
}
👨🏻💻 결과
📕 풀이 방법
v 벡터에 원소들을 넣으면서 v 벡터의 크기가 문자열 폭탄의 크기 이상일 경우 문자열을 폭발시킬 수 있는지 판단합니다. 폭발시킬 수 있다면 폭발 문자열의 길이만큼 v벡터를 pop 하고 계속해서 원소를 벡터에 넣어주면서 폭발시킬 수 있는 문자열들을 폭발시킵니다.
그리고 벡터의 크기에 따라 "FRULA" 혹은 벡터의 원소들을 출력합니다.
🔗 링크
https://www.acmicpc.net/problem/9935
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[JAVA] 백준 2981번 - 검문 (0) | 2021.11.17 |
---|---|
[JAVA] 백준 11780번 - 플로이드 2 (0) | 2021.11.03 |
[C++] 백준 1987번 - 알파벳 (0) | 2021.10.30 |
[C++] 백준 1406번 - 에디터 (스택 풀이 & 연결리스트 풀이) (0) | 2021.10.30 |
[JAVA] 백준 1931번 - 회의실 배정 (0) | 2021.10.29 |