알고리즘/백준
[백준 / Python] 10973번 이전 순열 | 초코더
cloud_nice
2020. 2. 6. 13:32
https://www.acmicpc.net/problem/10973
10973번: 이전 순열
첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다.
www.acmicpc.net
나의 풀이
n = int(input())
a = list(map(int, input().split()))
def next_permutation(a):
n=len(a)-1
i = n
while i>0 and a[i-1]<=a[i]:
i-=1
if i==0:
return False
j=n
while a[i-1]<=a[j]:
j-=1
a[i-1],a[j]=a[j],a[i-1]
j=n
while i<j:
a[i],a[j]=a[j],a[i]
i+=1
j-=1
return True
if next_permutation(a) is True:
for i in a:
print(i, end=' ')
print()
else:
print(-1)