[Java] 백준 10972 - 이론 및 구현해보기
study/algorithm 2022. 5. 4. 15:35

next permutation이란? 보통 순열과 조합을 구현할 때에는 재귀 함수를 사용하여 구현한다. 하지만 재귀적인 함수의 호출은 구하고자 하는 범위가 넓어질 경우 사용하기 힘들다는 단점이 있다. 이런 단점을 해결할 수 있는 것이 next permutation이라는 알고리즘이다. 단순 일차원 탐색을 통해서 순열, 조합을 구할 수 있다는 장점이 있다. 반복문을 통해서 값을 구하기 때문에 원소의 개수가 N이라 할 때 O(N) 만큼의 시간 복잡도를 가진다. 값을 바꿔주는 swap 과정을 거쳐서 순열을 생성하기 때문에 자연스럽게 순열의 순서도 파악할 수 있다는 장점이 있다. 알고리즘 진행 1. 아래와 같은 배열이 주어졌을 때 배열의 맨 뒤에서부터 탐색을 시작하여 N[index] < N[index+1]인 가장 ..