-
[백준] 15649번_N과M(1)Study/알고리즘 2020. 1. 29. 12:09
문제 링크 : https://www.acmicpc.net/problem/15649
15649번: N과 M (1)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다.
www.acmicpc.net
from itertools import permutations n, m = map(int,input().split()) nums = [i for i in range(1,n+1)] perms = list(permutations(nums,m)) for perm in perms: for p in range(len(perm)): print(perm[p],end=" ") print()
nums 변수 따로 안만들고 바로
perms = permutations(range(1,n+1),m) for p in perms: print(' '.join(map(str,p)))
해도 된다.
백트래킹 문제였지만 순열 함수가 있으니 일단 함수를 활용하여 풀어보았다.
'Study > 알고리즘' 카테고리의 다른 글
[백준] 15651번_N과M(3) (0) 2020.01.29 [백준] 15650번_N과M(2) (0) 2020.01.29 [백준] 1051번_숫자정사각형 (0) 2020.01.28 [백준] 1018번_체스판다시칠하기 (0) 2020.01.28 [백준] 1436번_영화감독숌 (0) 2020.01.28