#include <iostream> #include <algorithm> #include <string> #include <string.h> using namespace std; string word; string Min; int divideIdx[2]; void combination(int idx, int cnt) { if(cnt == 2) { string first = word.substr(0, divideIdx[0]+1); string second = word.substr(divideIdx[0]+1, divideIdx[1]-divideIdx[0]); string third = word.substr(divideIdx[1]+1); reverse(first.begin(), first.end()); reverse(second.begin(), second.end()); reverse(third.begin(), third.end()); string temp = first; temp += second; temp += third; if(Min > temp) { Min = temp; } return; } for(int i = idx; i < word.size()-1; i++) { divideIdx[cnt] = i; combination(i+1, cnt+1); } } int main(void) { // freopen("B1251_input.txt", "r", stdin); cin >> word; for(int i = 0; i < word.size(); i++) { Min += "z"; } combination(0, 0); cout << Min; return 0; } | cs |
'Baekjoon > BruteForce' 카테고리의 다른 글
[백준 1062] 가르침 (조합) (C/C++) (0) | 2020.03.24 |
---|---|
[백준 1018] 체스판 다시 칠하기 (Brute Force) (C/C++) (0) | 2020.03.24 |
[백준 1041] 주사위 (조합) (C/C++) (0) | 2019.12.18 |
[백준 15683] 감시 (순열) (C/C++) (★★★) (1) | 2019.11.21 |
[백준 15684] 사다리 조작 (조합) (C/C++) (★★★) (2) | 2019.11.20 |