https://www.acmicpc.net/problem/1251
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str;
string ans = "";
cin>>str;
for(int i=1;i<str.length()-1;i++)
{
for(int j=1;j<str.length()-i;j++)
{
string a = str.substr(0,i);
string b = str.substr(i,j);
string c = str.substr(i+j);
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
reverse(c.begin(),c.end());
if(ans=="") ans = a+b+c;
else if(a+b+c<ans) ans = a+b+c;
}
}
cout<<ans;
}
<풀이과정>
이 문제는 string 헤더에 있는 substr함수를 사용하면 더욱 풀기 쉬워진다.
substr함수 : 문자열을 자르는 함수
: 문자열.substr(시작위치, 길이)
: 문자열.substr(시작위치) (이 경우에는 시작위치부터 끝까지 반환값이 된다.)
ex) str = "coding"이라고 가정했을 때, str.substr(0,1) =>반환 문자는 c가 된다.
ex) str = "coding"이라고 가정했을 때, str.substr(0) => 반환 문자는 coding이 된다.
'PS > 정렬 알고리즘[Sort]' 카테고리의 다른 글
백준 5635 생일(c++) (0) | 2022.07.07 |
---|---|
백준 10989 수 정렬하기 3(c++) (1) | 2022.07.07 |
백준 2075 N번째 큰 수 (1) | 2022.07.07 |
백준 10867 중복 빼고 정렬하기(c++) (0) | 2022.07.06 |
백준 10814 나이순 정렬(c++) (0) | 2022.07.06 |