[Java] 순열과 조합을 구현하기 위한 Next Permutation 알고리즘에 대해서
·
Developer/Java
Java0. 들어가며문제 링크: https://www.acmicpc.net/problem/10972 최근 알고리즘 문제를 풀다가 "백준 10972 다음 순열"이라는 문제를 접하게 되었습니다. 처음 문제를 봤을 때는 “순열이면 그냥 재귀(Back Tracking)로 다 만들어서 다음 걸 찾으면 되는 거 아닌가?”라고 생각했습니다. 결과는 "시간 초과"였습니다. 당연하게도 그냥 다음 순열만 구하면 되는 건데, 재귀를 통해서 전체 순열을 모두 찾게 된다면 O(N!)이라는 시간 복잡도를 가지게 되며, 해당 문제에서 N의 범위는 10,000이므로 시간 초과가 되는 것은 당연한 결과였습니다. 결국 못 풀겠어서 여러 블로그를 찾아보게 되었습니다. 그러다가 이 문제를 풀기 위한 "Next Permutation"알고..