-
[백준 / Python] 10972번 다음순열 | 초코더알고리즘/백준 2020. 2. 6. 13:31
https://www.acmicpc.net/problem/10972
나의풀이
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 #만약 i가 0이라면 리스트가 완벽한 내림차순이므로 False리턴 if i==0: return False #값을 swap j = n while a[i-1]>=a[j]: j-=1 a[i-1],a[j]=a[j],a[i-1] #i이후의 값들을 정렬(=끝에서부터 앞의 수와 차례로 swap) 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)
'알고리즘 > 백준' 카테고리의 다른 글
[백준 / Python] 1697번 숨바꼭질 | 초코더 (0) 2020.02.06 [백준 / Python] 10973번 이전 순열 | 초코더 (0) 2020.02.06 [백준 / Python] 1918번 후위 표기식 | 초코더 (0) 2020.01.30 [백준 / Python] 1935번 후위 표기식2 | 초코더 (0) 2020.01.30 [백준 / Python] 17298번 오큰수 | 초코더 (0) 2020.01.30