일단 테크블로그😊

[15679] - N과 M(1) 본문

Algorithm/백준(BOJ)

[15679] - N과 M(1)

^__^/ 2024. 4. 14. 23:38

0. 링크 - https://www.acmicpc.net/problem/15649'

 

15649번: N과 M (1)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

 

1. 문제

 

2. 풀이

순열을 이용하여 풀 수 있는 간단한 문제이다. 중복 없이 M개를 고른, 순서가 있는 수열이므로, 순열 개념을 떠올리는 것이 가장 중요하다. 

 

1) Sol

파이썬 내장라이브러리 itertools를 이용하는 방법이다. 다음과 같이 간단하게 순열 집합을 생성하여 출력할 수 있다.

포인트는 해당 모듈을 알고 있을 것

from itertools import permutations
N, M = map(int, input().split())

num_list = list(range(1,N+1))		#순차 리스트 생성

for i in permutations(num_list,M):	#조건에 맞게 순열 생성
    for element in i:
        print(element, end=' ')		#출력
    print()