풀이과정

1. getline을 통해 한줄 씩 받아와야함.
2. 테스트 케이스를 받은 다음 버퍼를 비워줘야함.
3. 거꾸로 출력해야하므로 선입후출 구조인 스택을 사용함.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<iostream>
#include<string>
#include<stack>
 
using namespace std;
 
int main()
{
    int T;        //테스트 케이스
    string sentence;    //문장 (길이 최대 1000) 단어길이: 20
    stack <char> st;    //단어를 뒤집기 위한 스택
 
    cin >> T;
    cin.ignore();    //버퍼 비우기
    while (T--)
    {
        getline(cin, sentence);
        sentence += ' ';
 
        for (int i = 0; i < sentence.size(); i++)
        {
            if (sentence[i] == ' ')
            {
                while (!st.empty())
                {
                    cout << st.top();
                    st.pop();
                }cout << ' ';
            }
            else 
                st.push(sentence[i]);
        }cout << "\n";
    }
 
}
cs


+ Recent posts