포도 동 2020. 6. 26. 16:03

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

 

3568번: iSharp

문제 선영이는 C, C++, Java와는 다른 아주 세련된 언어를 만들었다. 선영이는 이 아름답고 예술적인 언어의 이름을 i#으로 정했다. i#은 기본 변수형과 배열([]), 참조(&), 포인터(*)를 제공한다. 배열

www.acmicpc.net


C++ 소스 코드

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    string s;
    getline(cin, s);
    vector<string> a;
    string now = "";
    for(int i=0;i<s.size();i++){
        if (s[i]==' ' || s[i]==',' || s[i]==';'){
            if (now.length() > 0) {
                a.push_back(now);
            }
            now = "";
        }
       else now+=s[i];
    }

    string base = a[0];

    for (int i=1; i<a.size(); i++) {
        string t = base;
        string s = a[i];
        while (s.length() > 0 && !('a' <= s.back() && s.back() <= 'z')) {
            if (s.back() == '[') {
                t += ']';
            } else if (s.back() == ']') {
                t += '[';
            } else {
                t += s.back();
            }
            s.pop_back();
        }
        cout << t << ' ' << s << ';' << '\n';
    }
}