N과 M (1) (백트래킹)

Ji·2022년 3월 12일
0

유튜브 강의


https://www.youtube.com/watch?v=E-Cb8ytpApo

n,m=map(int,input().split())

s=[]

def dfs():
    if len(s)==n:
        print(' '.join(map(str,s)))
        return

    for i in range (1,m+1):
        if i not in s:
            s.append(i)
            dfs()
            s.pop()

dfs()

내 풀이

n,m=map(int,input().split())
visited=[0]*(n+1)
arr=[0]*(m)

def dfs(index):

    if index==m:
        index=0
        print(*arr)
        return
    
    for i in range(1,n+1):
        if visited[i]==0:
            visited[i]=1
            arr[index]=i
            dfs(index+1)
            visited[i]=0

dfs(0)

참조
https://blog.encrypted.gg/732
https://www.youtube.com/watch?v=E-Cb8ytpApo

profile
공부방

0개의 댓글