자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.
- 1부터 N까지 자연수 중에서 M개를 고른 수열
- 같은 수를 여러 번 골라도 된다.
문제는 다음과 같다. 나는 처음에 중복 조합으로 풀었다.
'수열' 은 자연수를 정의역으로 하는 함수로, 수를 늘어놓고 각 수에 순번을 붙인다고 한다.
n, m = map(int, input().split())
l = [(i + 1) for i in range(n)]
result = [0] * m
visited = [False] * n
def over_comb(l, n, m, level):
if level == m:
print(' '.join(str(i) for i in result))
return
for i in range(n):
# if visited[i] ==False:
result[level] = l[i]
over_comb(l, n, m, level + 1)
over_comb(l, n, m, 0)
코딩 테스트에서는 tiertools 를 못쓴다고 해서... 따로 풀수있도록 연습중이다
'백준 단계별 코딩 테스트' 카테고리의 다른 글
백준 : N과 M (4) (0) | 2022.10.09 |
---|---|
HackerRank : Balanced Bracket (0) | 2022.10.08 |
HackerRank : Balanced Bracket (0) | 2022.09.18 |
HackerRank : Equal Stacks (0) | 2022.09.06 |
HackerRank prepare 문제 : Linked List 2 (0) | 2022.07.31 |