#include <iostream>
#include <string>
using namespace std;
int main()
{
string N = "";
string target = "";
string result = "";
cin >> N >> target;
int targetSize = target.size();
for(const auto& bomb : N)
{
result += bomb;
if (result.back() == target.back() && result.size() >= targetSize)
{
string temp = result.substr(result.size() - targetSize, targetSize);
if (temp == target)
{
result.erase(result.end() - targetSize, result.end());
}
}
}
if (result == "")
{
cout << "FRULA";
}
else
{
cout << result;
}
return 0;
}
풀이
1. 문자열을 쌓고 끝의 문자가 같은지 확인한다. 타겟문자가 C4일경우 4이면 확인. 다만 문자열의 길이가 타겟문자열 보다는 길어야 확인을 한다.
2. 해당 타겟 문자열을 삭제한다.
느낀점
문자열의 사용법은 정말 많구나 느꼈다. 문자열을 자르는 방법이라던가 끝문자를 확인하는 것이라던가 방식이 다양한 것같다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[C++] 백준 2156 포도주 시식 (0) | 2024.05.29 |
---|---|
[C++] 백준 1912 연속합 (0) | 2024.05.27 |
[C++] 백준 10816 숫자 카드2 (0) | 2024.05.14 |
[C++] 백준 2225 합분해 (0) | 2024.05.13 |
[C++] 백준 14889 스타트와 링크 (0) | 2024.05.02 |