[백준 15651 파이썬] N과 M (3)

일단 해볼게·2024년 3월 22일
0

백준

목록 보기
131/132

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

import sys
input = sys.stdin.readline

def dfs(n, lst):
    if n == M: # M개를 뽑았다면
        answer.append(lst[:])
        return
    
    for i in range(1, N + 1):
        v[i] = 1 # 방문 처리
        dfs(n + 1, lst + [i]) # lst에 방문한 i를 추가
        v[i] = 0 # 방문 처리 해제

N, M = map(int, input().split())

answer = []
v = [0] * (N + 1) # 중복 확인을 위한 배열

dfs(0, [])

for lst in answer:
    print(*lst)

같은 수를 여러 번 골라도 되기 때문에 방문 처리 하기 전 if문을 제거했다.

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글