[알고리즘] 백준 - 15652: N과 M
📑 문제 설명
1부터 N까지 번호가 적힌 구슬이 있습니다. 이중 M개를 뽑는방법의 수를 출력하는 프로그램을 작성하세요.
⌨️ 입력
첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다.
🖥 출력
첫 번째 줄에 결과를 출력합니다. 맨 마지막 총 경우의 수를 출력합니다. 출력순서는 사전순으로 오름차순으로 출력합니다.
예제 입력 1
4 2
예제 출력 1
1 2
1 3
1 4
2 3
2 4
🖥 프로그램 로직
✅ Answer
import sys
import os
sys.path.insert(0, "/".join(os.getcwd().split("/")[:-2]))
from judge import judge
def DFS(L, s):
global cnt, result
if L == m:
re = []
for j in range(L):
re.append(res[j])
cnt += 1
result.append(re)
re = []
else:
for i in range(s, n + 1):
res[L] = i
DFS(L + 1, i + 1)
@judge()
def solve():
global m, res, cnt, n, result
n, m = map(int, input().split())
res = [0] * m
cnt = 0
result = []
DFS(0, 1)
return "".join((map(lambda x: " ".join(map(str, x)), result))) + str(cnt)
solve()
❗️ 해설 ❗️
Author And Source
이 문제에 관하여([알고리즘] 백준 - 15652: N과 M), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@raymondanythings/알고리즘-백준-15652-N과-M저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)