1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 M개를 뽑아 일렬로 나열하는 방법을 모두 출력합니다. ▣입력설명 첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다. ▣출력설명 첫 번째 줄에 결과를 출력합니다. 맨 마지막 총 경우의 수를 출력합니다. 출력순서는 사전순으로 오름차순으로 출력합니다.
import sys
# sys.stdin=open("input.txt","rt")
# n,m = map(int,input().split())
# n = int(input())
# arr = list(map(int,input().split()))
def DFS(L):
global cnt
if L == m:
for j in range(L):
print(res[j],end=' ')
print()
cnt +=1
else:
for i in range(1,n+1):
if ch[i]==0:
ch[i]=1
res[L]=i
DFS(L+1)
ch[i]=0
if __name__ =="__main__":
n,m = map(int,input().split()) # n 숫자, m 뽑을 개수
res = [0] * m
ch =[0] * (n+1)
cnt = 0
DFS(0)
print(cnt)'코테연습 > python' 카테고리의 다른 글
| 수열 추측하기 (0) | 2026.05.18 |
|---|---|
| 동전교환 (0) | 2026.05.16 |
| 중복순열 구하기 (0) | 2026.05.14 |
| 합이 같은 부분집합(DFS : 아마존 인터뷰) (0) | 2026.05.13 |
| 부분집합 구하기(DFS) (0) | 2026.05.12 |