prev_permutation

prev_permutation (이전 순열)

범위를 사전순으로 이전 순열로 재배열하는 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

prev_permutation은 범위 [first, last)를 사전순으로 이전 순열로 바꿔요.

template< class BidirIt >
bool prev_permutation( BidirIt first, BidirIt last );   // (1)

비교기 버전도 있어요.

template< class BidirIt, class Compare >
bool prev_permutation( BidirIt first, BidirIt last, Compare comp );   // (2)
  • 반환 값: 이전 순열로 변환되면 true. 이미 가장 작은(첫) 순열이어서 맨 뒤(마지막) 순열로 되돌렸다면 false.
std::vector<int> v{3, 2, 1};
// 321, 312, 231, ... 순으로 사전순 이전 순열을 탐색
bool ok = std::prev_permutation(v.begin(), v.end());

next_permutation의 반대 연산이에요. 역순으로 모든 순열을 나열할 때 쓸 수 있어요.

더 알아보기 (Learn more)

cppreference