Algorithm/Baekjoon

[Algorithm] 백준 10974번 모든 순열 (Python)

meizzi 2023. 2. 8. 10:43
728x90
반응형

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

 

10974번: 모든 순열

N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.

www.acmicpc.net

문제

N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.

출력

첫째 줄부터 N! 개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.

예제 입력 1

3

예제 출력 1

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

풀이

설명

 

[Python] 순열(permutations)과 조합(combinations)

순열(permutations) 서로 다른 n개에서 r개를 선택할 때, 순서를 고려하여 중복 없이 뽑을 경우 nPr = n! / (n -r)! 만일 A, B, C에서 순서를 고려하여 중복 없이 2개의 쌍을 구한다면 AB/AC/BA/BC/CA/CB 총 6가지

techblogs.tistory.com

코드

from itertools import permutations
num = []

N = int(input())

if 1 > N > 8 :
    print("입력 범위 초과")

for i in range(1, N+1) :
    num.append(i)

per = list(permutations(num, N))

for i in per :
    for j in i :
        print(j, end = " ")
    print()
728x90
반응형