[백트래킹] N과M(1)
2021. 7. 18. 14:08ㆍ백준
1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 = NpM 이니까
파이썬에 내장된 순열과 조합 구현 가능한 라이브러리가 있더라;; 너무 편해...
from itertools import permutations as pm
N, M = map(int, (input()).split())
for i in pm(list(map(lambda x: x + 1, range(N))), M):
print(*i)
'''
def get_result_recursive(pre: list, result: list):
if len(result) == M:
return print(" ".join(map(str,result)))
else:
for i in range(len(pre)):
get_result_recursive([*pre[:i], *pre[i+1:]], [*result, pre[i]])
get_result_permutation()
'''
뭔가 너무 날로 먹는 것 같고 itertools 못 쓰는 케이스를 생각해서... 재귀로 푸는 케이스도 추가해봤다.
이번에 python에 있는 asterisk (*) 사용법을 알게 되었는데 신기했다.
js에 있는 ...rest 문법이랑 좀 비슷하게도 쓸 수 있었다. 역시 언어는 각 언어별 특징이 있다 뿐이지 대동소이 한 것 같다.