풀이과정
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 |
'백준 문제풀이 (C++) > 자료구조' 카테고리의 다른 글
[백준] BOJ 9012번 괄호 C++ 풀이법 (0) | 2020.09.02 |
---|---|
[백준] 10828번 스택 C++ 풀이법 (0) | 2020.09.02 |