[BOJ/백준] 15649. N과 M(1) (Python)

장성범·2022년 1월 16일

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

Problem

N과 M이 주어졌을때 M만큼의 중복되지 않는 수열을 찾는 문제

Solution

DFS를 통해 visited방문을 통해 자기와 다른 idx를 탐색하고 M만큼의 길이가 되면 출력하는 문제

Python Code

import sys

N,M=map(int,sys.stdin.readline().split())

visited=[False]*(N+1)
result=[]
def dfs(depth,visited):
    if depth==M:
        for i in result:
            print(i,end=' ')
        print()
    else:
        for i in range(1,N+1):
            if not visited[i]:
                visited[i]=True
                result.append(i)
                dfs(depth+1,visited)
                result.pop()
                visited[i]=False
dfs(0,visited)

0개의 댓글