반응형
int next_permutation(int n) //stl구현
{
int i = n - 1;
while (i > 0 && arr[i] <= arr[i - 1])i--; //어디까지가 감소수열?
if (i <= 0)
{
return -1; //전체가 감소수열이다. 54321
}
int j = n - 1;
while (arr[i - 1] >= arr[j])j--; //i-1이후와 그다음 조건에맞는 피벗찾아서 스왑
swap(i - 1, j);
//i-1 이후에 뒤집기
j = n - 1;
while (i < j)
{
swap(i, j);
i++;
j--;
}
}
반응형
'알고리즘문제풀이' 카테고리의 다른 글
[백준1158]조세퍼스문제 -연결리스트로 구현해보기 (0) | 2019.10.07 |
---|---|
KMP알고리즘-문자열 찾기 (0) | 2019.10.01 |
[백준 2252]줄세우기 (0) | 2019.04.25 |
위상정렬 (0) | 2019.04.08 |
[백준 16437]양 구출 작전 (0) | 2019.03.02 |