본문 바로가기
Algorithm

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

by jangThang 2022. 4. 3.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    15657번: N과 M (8)

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     주어진 수열에서 M개를 뽑는 중복 조합을 구하는 문제입니다.

     

    2022.04.01 - [Algorithm] - [Brute Force] 백준 15652 N과 M (4) - 파이썬(Python)

     위 문제에서 '수열'을 입력받는 것만 추가되었습니다. 동일하게 itertools.combinations_with_replacement() 함수를 이용해서 쉽게 풀 수 있습니다.

     

     

     

    3. 코드

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

     사전순으로 중복조합을 출력하기 위해, 오름차순으로 정렬된 numlist를 인수로 대입합니다.

     

     

    itertools.combinations_with_replacement(lst, n): lst에서 중복을 허용해서 n개를 뽑는 조합

     

    star가 되고나서 Tistory

    반응형

    댓글