본문 바로가기

코딩/Python

[Python] 백준 10972 다음순열

반응형

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

 

10972번: 다음 순열

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

www.acmicpc.net

 

코드 작성

n = int(input())
arr = list(map(int, input().split()))
for i in range(n-1, 0, -1):
  if arr[i] > arr[i-1]:
    for j in range(n-1, 0, -1):
      if arr[i-1] < arr[j]:
        arr[i-1] , arr[j] = arr[j], arr[i-1]
        arr = arr[:i] + sorted(arr[i:])
        print(*arr)
        exit(0)
print(-1)

코드  풀이

(예시) 코드 풀이

1 2 5 6 4 3

1 2 6 3 4 5

 

56의 자리를 바꾸고

5, 4, 3에 대해서 정렬하여 배열에 넣는다

 

 

 

 

 
반응형

'코딩 > Python' 카테고리의 다른 글

[Python] 백준 10819 차이를 최대로  (0) 2022.12.29
[Python] 백준 15667  (0) 2022.12.24
[Python] 백준 1107 리모컨  (1) 2022.12.21
[Python] 백준 3085 사탕 게임  (0) 2022.12.19
[Python] 백준 2133 타일 채우기  (0) 2022.12.18