| 제출 1 |
# 백트래킹으로 구현
import sys
input = sys.stdin.readline
n,m = map(int, input().split())
group = []
def find():
if len(group) == m:
print(' '.join(list(map(str, group))))
return
for i in range(1, n+1):
group.append(i)
find()
group.pop()
find()
: 우선 백트래킹 구현이다.
: N과M 시리즈로 푸는 중인데, 절대 안 잊겠다 싶다. 너무 좋다 이런 반복 훈련
: 이번에는 중복 허용해서 출력하는 것이다. 아래 쪽에 백트래킹 구현 부분에서 새로운 값인 i를 넣을 때,
기존 그룹에 동일값이 있는지 체크하는 부분을 빼주기만 했다.
: 쉽게 구현이 가능해서 만족스럽다.
| 제출 2 |
# product 라이브러리 사용
import sys
input = sys.stdin.readline
from itertools import product
n,m = map(int, input().split())
result = product(range(1, n+1), repeat=m)
for r in result:
print(' '.join(list(map(str, r))))
: 오히려 이 문제는 라이브러리의 사용이 버벅였다.
: product는 자주 사용하던 라이브러리가 아니어서 파라미터 구성 부분이 헷갈렸다.
product
: 중복 순열, 중복을 허용하여 m개 뽑기
: 순열이므로 순서 고려함
product( 반복 가능한 객체, repeat=뽑는 수)
'CodingTest > Baekjun Online Judge' 카테고리의 다른 글
[ BOJ / 파이썬 ] 15654 N과M (5) (0) | 2022.08.26 |
---|---|
[ BOJ / 파이썬 ] 15652 N과 M(4) (0) | 2022.08.26 |
[ BOJ / 파이썬 ] 15650 N과 M (2) (0) | 2022.08.26 |
[ BOJ / 파이썬 ] 2630 색종이 자르기 + 도형 자르고 그리는 재귀 문제 공략 (0) | 2022.08.26 |
[ BOJ / 파이썬 ] 2448 별 찍기 * 다시 풀기 * (0) | 2022.08.25 |