다음 순열1 [C++] 백준 15649번 : 다음 순열 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 문제 풀이 방법 1. 사전 순으로 나열하였을 때 다음 순열을 찾는 문제이다. 순열은 오름차순으로 이루어져 있고 가장 마지막 순열만 내림차순으로 이루어져 있다. 즉, 중복 X 만약 순열 A = 8457631 이 845로 시작하는 마지막 순열로 주어졌을 때 다음 순열을 찾는 방법은 1. 8 4 5 7 6 3 1 > > 위와 같이 뒤에서부터 시작해 A[i - 1] < A[i] 가 되는 i를 찾는다. 2. 다음 순열은 84?으로 시작하므로 이전인 ?는 5보다 크면서 7631중에 가장 작은 수(A[j])를 찾아 주어야 한다. 즉, .. 2020. 4. 17. 이전 1 다음