728x90
반응형
https://www.acmicpc.net/problem/10974
10974번: 모든 순열
N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.
www.acmicpc.net
풀이 과정
총 출력 개수는 n!
현재 순열을 출력하고 사전식 수열에서 다음에 나올 수 있는 순열로 정렬하는 방법은 이전 문제에서 푼 적이 있다.
https://thought-process-ing.tistory.com/92
[python] 백준 10972 다음 순열
https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 문
thought-process-ing.tistory.com
CODE
import sys
input = sys.stdin.readline
import math
n = int(input())
A = [i for i in range(1,n+1)]
m = math.factorial(n)
for _ in range(m):
x = 0
print(*A)
for j in range(n-1,0,-1):
if A[j-1] < A[j]:
for k in range(n-1,0,-1):
if A[j-1] < A[k]:
A[j-1], A[k] = A[k], A[j-1]
A = A[:j] + sorted(A[j:])
x = 1
break
if x==1:
break
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 10971 외판원 순회2 (0) | 2023.01.11 |
---|---|
[python] 백준 10819 차이를 최대로 (0) | 2023.01.10 |
[python] 백준 10973 이전 순열 (0) | 2023.01.08 |
[python] 백준 10972 다음 순열 (0) | 2023.01.07 |
[python] 백준 15666 N과 M (12) (0) | 2023.01.06 |
댓글