본문 바로가기
Algorithm

[Brute Force] 백준 15654 N과 M (5) - 파이썬(Python)

by jangThang 2022. 4. 2.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    15654번: N과 M (5)

    N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     주어진 수열에서 M개를 뽑은 순열을 구하는 문제입니다.

     

    2022.03.31 - [Algorithm] - [Brute Force] 백준 15650 N과 M (2) - 파이썬(Python)

     조합을 구했던 N과 M (2) 문제와 유사합니다. 백트래킹을 쓰지 않고도 itertools 라이브러리를 이용해서 브루트 포스로 풀 수 있습니다.

     

     

     

    3. 코드

    from itertools import permutations
    
    N, M = map(int, input().split())
    numlist = list(map(int, input().split()))
    case = permutations(sorted(numlist), M)
    
    for i in case:
        for j in i:
            print(j, end=" ")
        print()

     itertools.permutations() 함수를 이용합니다. 사전순으로 증가하는 순서로 순열을 구해야하므로, 입력받은 수열을 사전순으로 정렬해서 인수로 대입합니다.

     

     

    itertools.permutations(lst, n): lst에서 n개를 뽑은 순열​

     

    star가 되고나서 Tistory

    반응형

    댓글