[試験符号化/規格]NおよびM(3)
🔍NとM(3)
<質問>
自然数NとMが与えられた場合、以下の条件を満たすすべての長さMの数列を解くプログラムを作成します.
第1行は自然数NとMを与える.(1 ≤ M ≤ N ≤ 7)
<出力>
各行に問題条件を満たす数列を出力します.重複する数列は複数回出力できません.各数列はスペースで区切らなければなりません.
数列は予め増加した順序で出力しなければならない.
💡の意見を打診
Python内部関数itertoolsのproductで問題を解決できると思います.
💡テストに合格したコード
from itertools import product
N, M = map(int, input().split())
P = product(range(1, N+1),repeat=M) # iter(tuple)
for i in P:
print(' '.join(map(str, i))) # tuple -> str
Pythonの中でリストの中の値の繰り返しの順序を求めます
🔗リファレンス
https://juhee-maeng.tistory.com/91
製品(=重複シーケンス)
>反復シーケンス
from itertools import product
for i in product([1,2,3], repeat=2):
print(i, end=" ")
# (1, 1) (1, 2) (1, 3) (2, 1) (2, 2) (2, 3) (3, 1) (3, 2) (3, 3)
>2つ以上のリストからすべての組合せを計算
from itertools import product
for i in product([1,2,3],'ab'):
print(i, end=" ")
# (1, 'a') (1, 'b') (2, 'a') (2, 'b') (3, 'a') (3, 'b')
🔗Baekjun-NとM(3)https://www.acmicpc.net/problem/15651
Reference
この問題について([試験符号化/規格]NおよびM(3)), 我々は、より多くの情報をここで見つけました https://velog.io/@click/코딩테스트백준N과-M-3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol