알고리즘 문제 해결/BOJ

[문자열, 완전 탐색] BOJ 1251 단어 나누기

jmkimmessi 2022. 3. 23. 00:00
반응형

 

문제 해결 알고리즘

 

문자열을 세 부분으로 나눠 준 후 각각을 뒤집어 주고 합친 후, 배열에 저장해준다. 그러고 난 후에 정렬을 해서 맨 앞에 있는 원소를 출력해준다.

 

소스 코드

 

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

int main(){
    string str; cin >> str;
    vector<string> v;

    for(int i=1;i<str.size()-1;i++){
        for(int j=i+1;j<str.size();j++){

            string temp_str_1 = str.substr(0, i);
            string temp_str_2 = str.substr(i, j-i);
            string temp_str_3 = str.substr(j, str.size());  
            
            reverse(temp_str_1.begin(), temp_str_1.end());
            reverse(temp_str_2.begin(), temp_str_2.end());
            reverse(temp_str_3.begin(), temp_str_3.end());
            
            string temp_str = temp_str_1 + temp_str_2 + temp_str_3;
            
            v.push_back(temp_str);

        }
    }
    
    sort(v.begin(), v.end());

    cout << v[0];


}
반응형