백준 1464번 - 뒤집기 3 [C++]
https://www.acmicpc.net/problem/1464 풀이 문자열의 $i$번째 문자를 처리할 때, 결과적으로 그 문자를 지금까지 만든 문자열의 맨 앞에 붙이거나 / 맨 뒤에 붙이는 두 선택으로 생각할 수 있다. 증명 입력 문자열 $S = s_1s_2...s_N$ $i$번째 결정을 하는 순간, 문자열은 (결정된 $i - 1$개의 문자로 이루어진 문자열) + $s_i$ + (나머지) 가 된다.여기서 "결정된 $i - 1$개의 문자로 이루어진 문자열"을 $P$ 라 해보자. 다시 써보면, $P$ + $s_i$ + (나머지)이다.그리고 문자열 $P$ 만 보면 만들 수 있는 사전순으로 가장 빠른 문자열이다. $i$ 단계에서 할 수 있는 선택안 뒤집는다.$P$ + $s_i$ + (나머지)뒤집는다.$re..