Coding test
[백준/10972/파이썬] 다음 순열
코드짜는쿤스트
2023. 1. 10. 12:05
소스코드
n = int(input())
data = list(map(int, input().split()))
for i in range(n-1, 0, -1):
if data[i-1] < data[i]:
for j in range(n-1, 0, -1):
if data[i-1] < data[j]:
data[i-1], data[j] = data[j], data[i-1]
data = data[:i] + sorted(data[i:])
for i in data:
print(i, end=' ')
exit()
print(-1)
알고리즘
DP를 이용해서 permutations를 이용해 그 전의 리스트를 출력하려고 하여 풀면 시간초과가 나는 문제입니다;
그래서 어떤 방식이 있을까 생각해보다가 간단하게 맨 뒤에 숫자부터 시작해서 앞에 숫자보다 큰 경우 자리를 바꾼다음 출력해주면 되겠구나 하고 생각해서 풀었더니 잘 풀렸습니다.
