Memo
로직 설명
•
'<'를 만나면 반드시 '>'가 나오기 때문에 이 조건에 맞춰서 바로 출력합니다.
•
공백 또는 널 문자를 만나기 전까지 단어를 저장해 두고, 만나는 순간 역순으로 출력합니다.
Code
제출 날짜
@5/7/2021
메모리
2476 KB
시간
0 ms
#include <iostream>
#include <cstring>
char word[100001];
std::string ans;
void io_faster()
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
}
void input()
{
io_faster();
std::cin.getline(word, 100001);
}
void solve()
{
int i = -1;
while (word[++i])
;
int w_size = i;
i = -1;
ans = "";
std::string save = "";
while (++i <= w_size)
{
if (save.size() > 0 && (i == w_size || word[i] == ' ' || word[i] == '<'))
{
for (int j = save.size() - 1 ; j >= 0 ; j--)
ans+=save[j];
save = "";
if (word[i] == ' ')
{
ans += word[i];
continue;
}
if (i == w_size)
break;
}
if (word[i] == '<')
{
ans+=word[i];
while(word[++i] != '>')
ans+=word[i];
ans+=word[i];
}
else
save+=word[i];
}
}
void print_val()
{
std::cout << ans;
}
int main()
{
input();
solve();
print_val();
return (0);
}
C++
복사