문제
리뷰
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 |