관리 메뉴

Hyunwoo's DATA

boj- 10972 다음 순열 본문

알고리즘/백준

boj- 10972 다음 순열

꿈꾸는 데이터분석가 2021. 9. 21. 14:19

https://www.acmicpc.net/problem/10973

 

10973번: 이전 순열

첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다.

www.acmicpc.net

다음 순열 문제에서 기호만 뒤집으면 되는 문제였다.

중요한건 정렬도 역정렬로하면 되는데

이 경우에 sorted(,reverse=True)를 통해 간단히 해결 할 수 있었다.

 

n=int(input())
m=list(map(int,input().split()))

for i in range(n-1,0,-1):
    if m[i]<m[i-1]:
        for j in range(n-1,0,-1):
            if m[i-1]>m[j]:
                m[i-1],m[j]=m[j],m[i-1]
                m=m[:i]+sorted(m[i:],reverse=True)
                print(*m)
                exit()

print(-1)

'알고리즘 > 백준' 카테고리의 다른 글

boj-10819 차이를 최대로  (0) 2021.09.21
boj-10974 모든순열  (0) 2021.09.21
boj -10972 다음 순열  (0) 2021.09.21
boj-15649 N과 M  (0) 2021.09.19
boj - 1748 수 이어쓰기1  (0) 2021.09.19