코딩 테스트/백준

[Python] 백준 15651 N과 M (3)

위시리 2024. 9. 24. 02:14

문제 분석

  • 1~n까지 자연수 중 m개를 고르는 수열
  • 같은 수를 여러 번 골라도 됨 (중복 허용)
  • 중복 순 (중복을 허용하고 순서 상관o)

 

코드 설계

  • 중복검사하는 부분만 주석처리

 

정답 코드

import sys
input = sys.stdin.readline

n,m = list(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()

 

itertools

from itertools import product
import sys
input = sys.stdin.readline

n,m = map(int, input().split())
arr = [i for i in range(1, n+1)]

for re in product(arr, repeat = m) : 
    for r in re : 
        print(r, end = ' ')
    print()