본문 바로가기
Algorithm/C++

[백준 9093] 단어 뒤집기

by imagineer_jinny 2022. 4. 7.

9093번: 단어 뒤집기 (acmicpc.net)

 

9093번: 단어 뒤집기

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는

www.acmicpc.net


cin.ignore(); 과 getline(cin,str) +  str += '\n'을 해주는 이유
  

getline을 쓰면 마지막에 입력 받은 시점부터 '\n'을 받을 때 까지 한 줄에 있는 것을 모두 다 입력받아서 str에 넣어줌

그런데 cin.ignore()이 없으면 숫자 뒤에 개행 문자를 입력받게 됨

그래서 cin.ignore()을 해서 이걸 무시할 수 있게 함

 

#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    cin.ignore();
    while (t--) {
        string str;
        getline(cin, str);
        str += '\n';
        stack<char> s;
        for (char ch : str) {
            if (ch == ' ' || ch == '\n') {
                while (!s.empty()) {
                    cout << s.top();
                    s.pop();
                }
                cout << ch;
            } else {
                s.push(ch);
            }
        }
    }
    return 0;
}

'Algorithm > C++' 카테고리의 다른 글

[백준 5635번] 생일  (0) 2022.04.09
[백준 9012] 괄호  (0) 2022.04.08
[프로그래머스 lv2] 피보나치 수  (0) 2022.03.30
[이코테 2021] 음료수 얼려먹기 / DFS  (0) 2021.09.29
[프로그래머스 C++] 위장 / 해시 , map  (0) 2021.09.21

댓글