No Rules Rules

단어 뒤집기 2 (feat. 백준, 17413번) 본문

생활/코테

단어 뒤집기 2 (feat. 백준, 17413번)

개발하는 완두콩 2022. 11. 2. 12:31
728x90
반응형

단어 뒤집기 2
https://www.acmicpc.net/problem/17413

 

17413번: 단어 뒤집기 2

문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('<', '>')로만 이루어져

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
    string str1, str2;
    vector<string> ans;
    getline(cin, str1);
    bool is_reverse = true;
    for(register int i = 0; i < str1.size(); ++i){
        if(str1.at(i) == '<'){
            if(!str2.empty()){
                if(is_reverse)
                    reverse(str2.begin(), str2.end());    
                ans.push_back(str2), str2.clear();
            }
            is_reverse = false, str2 += str1.at(i);
        }
        else if(str1.at(i) == '>')
            is_reverse = true, str2 += str1.at(i), ans.push_back(str2), str2.clear();
        else if(str1.at(i) == ' '){
            if(is_reverse)
                reverse(str2.begin(), str2.end());
            str2 += str1.at(i), ans.push_back(str2), str2.clear();
        }
        else
            str2 += str1.at(i);
    }
    if(!str2.empty()){
        if(is_reverse)
            reverse(str2.begin(), str2.end());
        ans.push_back(str2);
    }
    for(auto& str : ans)
        cout << str;
	return 0;
}
// *&)*@*

 

반응형

주어진 조건에 따라 문자열을 reverse 취하는 문제입니다.

728x90
반응형
Comments