[백준] 10974 : 모든 순열 - Python

Chooooo·2023년 12월 9일
0

알고리즘/백준

목록 보기
140/182
post-thumbnail

문제

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

입력

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

출력

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

import sys
sys.stdin = open("input.text", "rt")

n = int(input())

ch = [0] * (n+1)
res = []
def dfs(L):
    if L == n+1:
        print(*res)
    else:
        for i in range(1,n+1):
            if ch[i] == 0:
                ch[i] = 1
                res.append(i)
                dfs(L+1)
                ch[i] = 0
                res.pop()

dfs(1)

코멘트

순열 코드.
중복 체크만 하고 전부 반복.

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글