안녕하세요. 오늘은 버그를 지울 거예요.
https://www.acmicpc.net/problem/3447
change(s)를 s에 있는 가장 먼저 나오는 BUG를 지우는 함수라고 합시다.
만약 없다면 s를 그대로 반환해주면 됩니다.
만약 있다면 그 BUG를 떼고 앞뒤를 붙여서 change해주면 됩니다.
#include <iostream>
#include <string>
#define ll long long
using namespace std;
string change(string s)
{
ll len = s.length();
for (ll i = 0; i < len - 2; i++)
{
if (s.substr(i, 3) == "BUG")
return change(s.substr(0, i) + s.substr(i + 3, len - i - 3));
}
return s;
}
int main()
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
string s;
while (getline(cin, s))
cout << change(s) << "\n";
}
감사합니다.