[Python] N과 M (1) - 백트래킹

Saemi Min·2023년 2월 24일
0

BaekJoon

목록 보기
14/30
post-thumbnail

문제

해당 문제 링크

정답

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

visited=[]

def dfs():

    if len(visited) == m:
        print(' '.join(map(str, visited)))

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


dfs()

풀이

백트래킹 문제라서 DFS로 문제를 풀 수 있다. DFS를 공부해서 어렵지 않게 이해하고 풀 수 있었다.
맨 처음에는 visited=[0]*n으로 방문을 확인하려고 하는데 다른 사람의 코드를 보니 아예 리스트에 방문했던 값을 넣고, 해당 값을 출력하는 방법이 있어 더 쉽게 풀 수 있다는 것을 알았다.
N과 M 문제가 여러 개 있어 더 풀어볼 예정이다!

profile
I believe in myself.

0개의 댓글