본문 바로가기

Algorithm/String

(C++) - 백준(BOJ) 12605번 : 단어순서 뒤집기 답

반응형

www.acmicpc.net/problem/12605

 

12605번: 단어순서 뒤집기

스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만

www.acmicpc.net

간단한 문자열 처리 문제였습니다.

 

Code

#include <bits/stdc++.h>
using namespace std;
int t;

string getOppositeSentence(string sentence){
    int size = sentence.size();
    string ans = "";
    string tmp = "";
    vector <string> s;
    for(int i = 0; i < size; i++){
        tmp += sentence[i];
        if(sentence[i] == ' ' || i == size-1){
            s.push_back(tmp);
            tmp = "";
        }
    }
    for(int i = s.size() - 1; i >= 0; i--){
        ans += s[i];
        if(i == s.size() - 1) ans += ' ';
    }
    return ans;
}
int main(){
    cin >> t;
    cin.ignore();
    for(int i = 1; i <= t; i++){
        string sentence;
        getline(cin,sentence);
        sentence = getOppositeSentence(sentence);
        cout << "Case #" << i << ": " << sentence << '\n';
    }
}