[백준] 10974번 모든 순열 - Python / 알고리즘 기초 2/2 - 브루트 포스 - 순열

ByungJik_Oh·2025년 4월 9일
0

[Baekjoon Online Judge]

목록 보기
89/244
post-thumbnail



💡 문제

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

입력

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

출력

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


💭 접근

간단하게 dfs로 모든 순열을 추출하면 되는 문제.


📒 코드

def dfs(depth):
    if depth == n:
        print(*ans)
        return
    
    for i in range(n):
        if num[i] not in ans:
            ans.append(num[i])
            dfs(depth + 1)
            ans.pop()

n = int(input())
num = [i for i in range(1, n + 1)]
ans = []

dfs(0)

💭 후기

Python의 itertools 모듈로도 해결할 수 있다.

from itertools import permutations

🔗 문제 출처

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


profile
精進 "정성을 기울여 노력하고 매진한다"

0개의 댓글