
[백준/c++] 10972번: 다음 순열
·
알고리즘/백준
https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 이 문제는,, 백트래킹을 하면 시간 초과 발생한다. 그래서 고민 좀 하다가 다른 사람이 푼 방법을 봤는데 도저히 내가 생각해낼..ㅋㅋ 게 아니었다ㅠ 그래서 이번 문제를 통해 공부를 하고 다른 문제에 응용할 수 있도록 해야겠다. 다음 순열을 찾는 건 사전 순의 정렬 원리를 그대로 구현해야 한다. 예를 들어, 1 2 5 4 3 의 다음 순열은? 뒤에서부터 바꿔나가야 한다. → 뒤에서부터 이어진 증가 순열의 끝을 찾아야 한다. 맨 뒤(n-1)에서부터 앞으로 나가..