반갑습니다!

[백준] 3568 iSharp 본문

알고리즘 문제 풀이

[백준] 3568 iSharp

김덜덜이 2020. 4. 19. 14:46
3568번: iSharp
 
www.acmicpc.net

풀이

stringstream을 사용하여 문자열을 분리하고, 분리된 문자열을 뒤에서부터 탐색하여 해결하였다.

코드

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

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    string str;
    getline(cin, str);
    stringstream ss(str);

    string type;
    string variable;

    ss >> type;
    while (ss >> variable) {
        cout << type;
        // 잘라진 문자열의 맨 끝은 , 또는 ; 이므로 variable.size()-2부터 시작
        for (int i = variable.size() - 2; i >= 0; i--) {
            char c = variable[i];
            if (c == ']') {
                cout << "[]";
                i--;
            }
            else if (c == '&' || c == '*')
                cout << c;
            else {
                // 변수 이름인 경우 뛰어쓰기하고 제대로된 순서로 출력
                cout << ' ';
                for (int j = 0; j <= i; j++)
                    cout << variable[j];
                cout << ";\n";
                break;
            }
        }
    }

    return 0;
}

'알고리즘 문제 풀이' 카테고리의 다른 글

[백준] 17837 새로운 게임2  (2) 2020.04.19
[백준] 17780 새로운 게임  (0) 2020.04.19
[백준] 15654 N과 M (5)  (0) 2020.04.19
[SWEA] 최장 경로  (0) 2020.04.19
[SWEA] 2817 부분 수열의 합  (0) 2020.04.18