문제

단어 뒤집기 백준 9093번


리뷰

scanf 로 테스트케이스 숫자를 받고나서 자꾸 공백이 찍히는게 이상해서 구글링을 했다.

getline 함수로 문장을 받기 전에, 버퍼를 비워줘야 했다!!


**코드

#include <iostream>
#include <algorithm>
using namespace std;

char A[1002];

int main(void){

    freopen("input.txt", "rt", stdin);

     int N = 0;
     cin >> N; 

     string bufferflush; 
     getline(cin, bufferflush); // 버퍼를 비운다 

     while(N--){

         string st, rev_st;
         getline(cin, st); // 한 줄 입력받기 

         for(int i = 0; i < st.length(); i++){

             if(st[i] == ' '){
                 // 띄어쓰기 만날 때 마다 뒤집은 것 출력
                reverse(rev_st.begin(), rev_st.end());
                cout << rev_st << ' ';
                rev_st.clear(); // 출력 끝났으니까 비운다 

            }else{
                rev_st += st[i]; 
            }
        }

        // 문장의 마지막 단어 출력 후 개행  
        reverse(rev_st.begin(), rev_st.end());
        cout << rev_st << endl;
    }

     return 0;
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

단어 뒤집기2 백준 17413  (0) 2020.08.29
암호 만들기 백준 1759번  (0) 2020.08.27
문자열 분석 백준 10820번  (0) 2020.08.27
접미사 배열 백준 11656번  (0) 2020.08.27
네 수 백준 10824  (0) 2020.08.27

+ Recent posts