알고리즘/백준

[백준/c++] 9093번: 단어 뒤집기

녕이 2022. 7. 16. 16:09
728x90

 

 

https://www.acmicpc.net/problem/9093

 

9093번: 단어 뒤집기

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

www.acmicpc.net

 

 

cin로 t 입력받고 getline으로 공백 없이 문자열을 입력받으려면 버퍼를 꼭 비워줘야 한다.

cin.ignore()

 

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;

int main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int t;
    vector<string> v;
    cin >> t;
    cin.ignore(); //버퍼 비우기
    for(int i=0; i<t; i++){
        string s;
        getline(cin, s);
        istringstream ss(s);
        string buffer;
        
        while(getline(ss, buffer, ' ')) v.push_back(buffer);
        for(int i=0; i<v.size(); i++) for(int j=0; j<v[i].size()/2; j++) swap(v[i][j], v[i][v[i].size()-j-1]);
        
        for(int i=0; i<v.size(); i++) cout << v[i] << ' ';
        cout << '\n';
        
        v.clear();
    }
    
    return 0;
}

 

 

 

728x90