15649: N과 M (1)

ewillwin·2023년 4월 28일
0

Problem Solving (BOJ)

목록 보기
20/230

  • backtracking을 이용한 풀이
  • backtracking은 기본적으로 brute force 전략을 취하지만, 처리 속도를 향상시키기 위한 pruning이 중요한 역할을 함
import sys

N, M = map(int, input().split(' '))
ans = []

def dfs():
    if len(ans) == M:
        print(" ".join(map(str, ans)))
        return
    for i in range(1, N+1):
        if i not in ans:
            ans.append(i)
            dfs()
            ans.pop()

dfs()
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글