[알고리즘/백준] 10974번 : 모든 순열(python)

유현민·2022년 4월 29일
0

알고리즘

목록 보기
155/253

permutation을 쓰면 금방 풀린다. 하지만 배우는 의미가 없음

dfs를 이용했습니다. 하나씩 추가해서 길이가 n이 되면 그걸 출력했습니다.
for문을 사용하여 0부터 n까지 돌렸고 +1한걸 visited에 추가했습니다.

visited의 길이는 n의 길이와 똑같기 때문에 만약 4라면 visited의 길이는 4가 되고
최대 1~4까지만 들어갈 수 있습니다.

def dfs(depth):
    global ans

    if depth == n:
        print(*visited)
    else:
        for i in range(n):
            if i + 1 in visited:
                continue
            visited[depth] = i + 1
            dfs(depth + 1)
            visited[depth] = 0


n = int(input())
visited = [0] * n
dfs(0)
profile
smilegate megaport infra

0개의 댓글