반응형
문제링크: https://www.acmicpc.net/problem/1251
모든 경우의 수를 비교해봐야하는 브루트 포스 문제입니다.
즉, 완전탐색을 하는 것입니다.
비교적 쉬운 난이도였지만, 틀리기 좋았던 부분은 단어를 쪼갤때
1. 삼등분을 해야하기 때문에 중복이 되면 안된다.
2. 세가지 덩어리가 순서대로 돌아와야한다.
오답코드가 있으시다면 해당 테스트케이스를 확인해보세요.
afbdba -> abdbfa
정답코드입니다.
#include <iostream>
#include <string>
using namespace std;
string input,result;
string a, b;
int main() {
cin >> input;
result = "{";
for (int i = 0; i < input.size()-2; i++) {
for (int j = i+1; j < input.size()-1; j++) {
string val;
for (int u = i; u >= 0; u--)
val += input[u];
for (int u = j; u > i; u--)
val += input[u];
for (int u = input.size() - 1; u > j; u--)
val += input[u];
if (result > val) result = val;
}
}
cout << result << endl;
}
반응형
'알고리즘 > 브루트포스' 카테고리의 다른 글
[백준] 1038-감소하는 수(C++) (0) | 2020.06.30 |
---|---|
[백준] 11502-세 개의 소수 문제(C++) (0) | 2020.03.31 |
[백준] 1051-숫자 정사각형(C++) (0) | 2020.03.09 |
[백준] 2966-찍기(C++) (0) | 2020.03.09 |
[백준] 2503-숫자 야구(C++) (0) | 2020.03.09 |