kwan's note

백준-15649번 N과 M (1) 파이썬 (python code) 본문

Algorithm/python

백준-15649번 N과 M (1) 파이썬 (python code)

kwan's note 2021. 1. 12. 11:20
반응형

문제번호:15649

난이도: 실버3

 

간단한 dfs 백트래킹 문제이다.

삼성 sds 동계알고리즘 특강을 들으며 dfs문제 이해가 오래걸려 기본문제부터 풀어보게 되었다.

 

from sys import stdin

def dfs(cnt):
    if(cnt==M):
        print(*answer)
        return
    for i in range(N):
        if(checklist[i]==False):
            checklist[i]=True
            answer.append(numlist[i])
            dfs(cnt+1)
            answer.pop()
            checklist[i]=False


if __name__ == '__main__':
    N,M= map(int,stdin.readline().split())
    numlist = [i+1 for i in range(N)]
    answer=[]
    checklist = [False]*N
    dfs(0)

반응형