- 이전순열
- 실버3
n과 순열이 주어진다. 순열을 오름차순으로 정렬할 때 이전의 순열을 출력한다. 첫번째 순열일 경우 -1을 출력한다.
순서가 중요한 순열 문제다.
-
저점 찾기
뒤에서부터 탐색한다. 현재 요소와 이전 요소를 비교해서 이전요소(i-1)가 크다면 오름차순이 깨지는 지점이다. i-1을 낮은 지점이라 보고 교환 할 것이다. -
낮은 지점 이후의 숫자에서 가장 작은 숫자와 교환하기
낮은 지점 이후의 숫자들중에서 가장 작은 수를 찾아서 arr[i-1]과 교환한다. 이를 위해 끝에서부터 시작해서 arr[i - 1]보다 작을때까지 순회한다. -
뒤집기
낮은 지점 이후의 순열이 가장 큰 순열이 되도록 낮은 지점 이후의 순열을 뒤집어준다.