[BOJ 파이썬] - N과 M (1) (15649번)

정현서·2020년 12월 21일
0

코딩 테스트

목록 보기
1/4

문제

접근

n개의 자연수 중 m개를 뽑아 '순열'을 만드는 간단한 문제입니다.
DFS 방식으로 접근하여 해결하였습니다.

itertools 라이브러리의 permutations를 사용하면 더 빠르고 간단하게 풀수도 있습니다.

풀이

DFS 사용

import sys
n, m = map(int, sys.stdin.readline().split())

def DFS(level):
  if level == m:
    print(*res)
  else:
    for i in range(1, n+1):
      if ch[i] == 0:
        ch[i] = 1
        res[level] = i
        DFS(level + 1)
        ch[i] = 0
ch = [0] * (n + 1)
res = [0] * m
DFS(0)

itertools 라이브러리의 permutations 사용

from itertools import permutations
n, m = map(int, input().split())
permu = permutations(range(1, n+1), m)
for i in permu:
  print(*i)
profile
현서맨

0개의 댓글