단어 뒤집기 2 - 17413
2025. 2. 13. 09:56ㆍPS/백준
문제
https://www.acmicpc.net/problem/17413
느낀점
문제의 조건을 잘 파악하자
풀이
#include <iostream>
#include <string>
#include <vector>
std::string reverseString(std::string s)
{
std::string result = "";
bool flag = false;
if (s[0] == '<')
{
for (int i = 0; i < s.size(); i++)
{
result += s[i];
}
return result;
}
else
{
for (int i = s.size() - 1; i >= 0; i--)
{
if (s[i] == ' ')
{
flag = true;
continue;
}
result += s[i];
}
if (flag)
{
return " " + result;
}
else
{
return result;
}
}
}
int main()
{
std::string s;
std::getline(std::cin, s);
std::vector<std::string> stack;
std::string temp = "";
std::string answer = "";
bool flag = false;
for (int i = 0; i < s.size(); i++)
{
if (s[i] == '<')
{
if (!temp.empty())
{
stack.push_back(reverseString(temp));
temp = "";
}
temp += s[i];
flag = true;
continue;
}
else if (s[i] == '>')
{
temp += s[i];
flag = false;
stack.push_back(reverseString(temp));
temp = "";
continue;
}
if (flag)
{
temp += s[i];
}
else
{
if (s[i] == ' ')
{
stack.push_back(reverseString(temp));
temp = " ";
}
else
{
temp += s[i];
}
}
}
if (!temp.empty())
{
stack.push_back(reverseString(temp));
}
for (int i = 0; i < stack.size(); i++)
{
for (int j = 0; j < stack[i].size(); j++)
{
answer += stack[i][j];
}
}
std::cout << answer;
return 0;
}
'PS > 백준' 카테고리의 다른 글
랭킹전 대기열 - 20006 (0) | 2025.02.13 |
---|---|
11899 - 괄호 끼워넣기 (0) | 2025.02.13 |
가장 큰 증가하는 부분 수열 - 11055 (0) | 2025.02.13 |
점프 - 1890 (0) | 2025.02.13 |
주식 - 11501 (0) | 2025.02.13 |