WN_인생기록

next_permutation 본문

C++/탐구

next_permutation

WhNi 2024. 4. 8. 16:10

<algorithm>헤더에 있는 함수이며

사전순으로 오는 순열을 생성하는 기능을 가지고 있다.

 

특히 완전탐색이라던가 조합의 모든 경우를 구하는 문제에서 주로 활용할 수 있을거 같다. 

 

사용할때는 주로 do while 문과 자주 쓰이게 된다. 

 

왜냐하면, 함수가 호출될떄마다 주어진 범위의 요소를 순열로 배치하기 때문에 모든 순열을 반복할 수 있다. (do while로 처음 상태까지 포함해서 배치)

 

	sort(numbers.begin(), numbers.end());
	do
	{
		for (int j = 1; j <= numbers.size(); j++)
		{
			string sub = numbers.substr(0, j);
			int num = stoi(sub);
			x.emplace_back(num);
		}
	} while (next_permutation(numbers.begin(), numbers.end()));

함수를 쓸때 미리 오름차순으로 정렬을 해둬야 정확한 순열의 모든 경우의 수가 나오기 때문에 미리 sort해주는 것이 중요하다. 

'C++ > 탐구' 카테고리의 다른 글

iomanip  (0) 2024.04.15
A* Algorithm -4 (완)  (0) 2024.04.01
A* Algorithm -3  (0) 2024.04.01
thread  (0) 2024.03.30
Lvalue? Rvalue?  (0) 2024.03.24