Algorithm/Python

[백준 10974] 모든 순열

🥭맹2 2021. 5. 10. 19:53

1. 문제

www.acmicpc.net/problem/10974

 

10974번: 모든 순열

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

www.acmicpc.net

2. 접근 방법

순열을 만들면 됩니다용

range로 1부터 N까지의 list를 하나 만들어서

순열을 순서대로 만들면 

사전순으로 출력됩니당

3. 코드

python

def perm(n):
    global answer, visited
    if n == N:
        print(*answer, sep=" ")
        return
    for i in range(N):
        if not visited[i]:
            visited[i] = True
            answer.append(lst[i])
            perm(n+1)
            visited[i] = False
            answer.pop()

N = int(input())
lst = list(range(1, N+1))
visited = [False] * N
answer = []
perm(0)

4. 마치며

마치며~!

'Algorithm > Python' 카테고리의 다른 글

[프로그래머스] 튜플  (0) 2021.05.14
[백준 6603] 로또  (0) 2021.05.11
[백준 10973] 이전 순열  (0) 2021.05.09
[백준 13913] 숨바꼭질 4  (0) 2021.05.06
[백준 1697] 숨바꼭질  (0) 2021.05.06