[BOJ] 9935๋ฒ | ๋ฌธ์์ด ํญ๋ฐ (C++)
2023. 10. 8. 15:21ใCoding Test/BOJ
๐๋ฌธ์ ๋ณด๋ฌ๊ฐ๊ธฐ
๐ง๐ปํ์ด ๊ณผ์
string์ ์คํ(stack)์ฒ๋ผ ์ฌ์ฉํ์ฌ ํ์์ต๋๋ค. ์ ๋ต์ ์ ์ฅํ string ๋ณ์(answer)๋ฅผ ๋ฐ๋ก ์ค๋นํ ํ, ์ฃผ์ด์ง ๋ฌธ์์ด์ ์ฐจ๋ก๋๋ก ์ํํ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ์งํํด ์ฃผ์์ต๋๋ค.
- ํ์ฌ ์ฝ์ ๋ฌธ์์ด์ answer ๋ณ์์ ๋ฃ์ต๋๋ค.
- ํ์ฌ ์ฝ์ ๋ฌธ์์ด์ด ํญ๋ฐ ๋ฌธ์์ด์ ๋ง์ง๋ง ๋ฌธ์์ ๊ฐ๋ค๋ฉด, ๋ค์ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค.
- answer์ ํญ๋ฐ ๋ฌธ์์ด์ ๋ค์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ฝ์ผ๋ฉฐ ๋น๊ตํฉ๋๋ค.
- ๋ ๋ฌธ์์ด์ด ์๋ก ๊ฐ๋ค๋ฉด, ํญ๋ฐ ๋ฌธ์์ด ํฌ๊ธฐ๋งํผ answer์์ pop_back()์ ํด์ค๋๋ค.
- ๋ฌธ์์ด ์ํ๋ฅผ ๋ง์น ํ answer๊ฐ ๋น์๋ค๋ฉด "FRULA"๋ฅผ, ์๋๋ผ๋ฉด answer๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
โ๏ธ์์ค ์ฝ๋ ๋ฐ ๊ฒฐ๊ณผ
#include <iostream>
#include <string>
using namespace std;
#define FAST_IO ios::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL);
bool IsExplosionString(const string& explosionString, const string& targetString)
{
if (targetString.size() < explosionString.size())
return false;
int targetIdx = targetString.size() - 1;
for (int expIdx = explosionString.size() - 1; expIdx >= 0;)
{
if (targetString[targetIdx--] != explosionString[expIdx--])
return false;
}
return true;
}
int main()
{
FAST_IO
string str, explosionString;
cin >> str >> explosionString;
string answer;
for (const auto& character : str)
{
answer.push_back(character);
if (character == explosionString.back())
{
if (!IsExplosionString(explosionString, answer))
continue;
for (int i = 0; i < explosionString.size(); i++)
answer.pop_back();
}
}
if (answer.empty())
cout << "FRULA";
else
cout << answer;
return 0;
}
728x90
๋ฐ์ํ
'Coding Test > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 13549๋ฒ | ์จ๋ฐ๊ผญ์ง 3 (C++) (1) | 2023.12.06 |
---|---|
[BOJ] 16928๋ฒ | ๋ฑ๊ณผ ์ฌ๋ค๋ฆฌ ๊ฒ์ (C++) (0) | 2023.12.01 |
[BOJ] 2110๋ฒ | ๊ณต์ ๊ธฐ ์ค์น (C++) (0) | 2023.10.08 |
[BOJ] 2512๋ฒ | ์์ฐ (C++) (0) | 2023.09.06 |
[BOJ] 1300๋ฒ | K๋ฒ์งธ ์ (C++) (0) | 2023.09.06 |