본문 바로가기

파이썬 알고리즘 풀이

50)중복순열 구하기

문제

1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 중복을 허락하여 M번을 뽑아 일렬로 나열 하는 방법을 모두 출력하기

 

조건

 

제한사항

첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다.

 

첫 번째 줄에 결과를 출력합니다.

 

맨 마지막 총 경우의 수를 출력합니다. 출력순서는 사전순으로 오름차순으로 출력합니다.

 

문제풀이

def go(L):
  global cnt
  
  if L==M:
    for i in range(M):
      print(res[i], end=' ')
    print()
    cnt+=1
  else:
    for i in range(1, N+1):
      res[L]=i
      go(L+1)


N, M=map(int, input().split())
res=[0]*M
cnt=0
go(0)
print(cnt)

 

'파이썬 알고리즘 풀이' 카테고리의 다른 글

52)순열 구하기  (0) 2021.11.04
51)동전 교환  (0) 2021.11.04
49)바둑이 승차(DFS)  (0) 2021.11.04
48)합이 같은 부분집합(DFS)  (0) 2021.11.03
47)부분집합 구하기(DFS)  (0) 2021.11.03