문제 https://www.acmicpc.net/problem/17413
풀이
조건이 많아서 까다로웠던 문제다.. 하나 고치면 하나 안되고....
<> 안에 들어간 문자열은 뒤집지 않고, 그 외의 문자열만 뒤집는 것이기 때문에
<> 안에 들어가는 문자열은 큐에 넣고, 그 외는 스택에 넣도록 했다.
코드
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
char str[100010];
stack <char> st;
queue <char> qu;
int main()
{
int flag = -1;
cin.getline(str,100010);
int cnt=0;
for(int i=0; i<100001; i++)
{
if(str[i]=='\0') break;;
cnt++;
}
int scnt=0;
for(int i=0; i<cnt+1; i++)
{
if(str[i]=='>') scnt--;
if(!flag && str[i]=='>' && scnt==0)
{
while(!qu.empty())
{
cout<<qu.front();
qu.pop();
}
cout<<">";
flag=1;
i++;
}
if(flag!=0 && str[i]==' ' || str[i]=='\0' ||(flag!=0&&str[i]=='<'))
{
if(!st.empty())
{
while(!st.empty())
{
cout<<st.top();
st.pop();
}
}
if(str[i]==' ')
{
cout<<' ';
i++;
}
}
if(str[i]=='<')
{
flag = 0;
scnt++;
}
if(flag==0) qu.push(str[i]);
if(flag!=0) st.push(str[i]);
}
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
백준 9613 - GCD 합 (0) | 2022.06.05 |
---|---|
백준 4948 - 베르트랑 공준 (0) | 2022.06.04 |
백준 1213 - 팰린드롬 만들기(C++) (0) | 2022.06.02 |
백준 4673 - 셀프 넘버 (0) | 2022.03.29 |
백준 1475 - 방 번호 (0) | 2022.03.23 |