본문 바로가기
프로그래밍/알고리즘

백준 - N과 M(1) 15649번 파이썬

by 숙님 2023. 2. 10.
728x90

문제 

 

15649번: N과 M (1)

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

www.acmicpc.net

 

해결 코드 

from itertools import permutations

n, m = map(int, input().split())
lst = list(map(str, range(1,n+1)))

for i in permutations(lst, m):
    print(' '.join(i))

- 백트래킹으로 풀이

- 순열을 이용하여 풀이 

- 1부터 n까지의 수를 배열로 넣고 permutations함수로 다른 배열로 만든다 

- 그리고 공백을 포함해서 요소들을 출력한다 

- 순열 라이브러리 더 알아보기 

itertools.permutations(iterable, r=None)
iterable에서 요소의 연속된 길이 r 순열을 반환합니다.

r이 지정되지 않았거나 None이면, r의 기본값은 iterable의 길이이며 가능한 모든 최대 길이 순열이 생성됩니다.
 

itertools — Functions creating iterators for efficient looping

This module implements a number of iterator building blocks inspired by constructs from APL, Haskell, and SML. Each has been recast in a form suitable for Python. The module standardizes a core set...

docs.python.org

 

'프로그래밍 > 알고리즘' 카테고리의 다른 글

이코테 구현 파이썬  (0) 2023.02.12
이코테 그리디 파이썬  (0) 2023.02.12
백준 - 1로 만들기 1463 파이썬  (0) 2023.02.09
파이썬 그리디 베이스 코드  (0) 2023.02.07
파이썬 입출력 베이스 코드  (0) 2023.02.06

댓글