15650번: N과 M (2)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
내 코드
n, m = map(int, input().split())
visited = [False] * n
out = []
def solve(depth, m, idx):
if depth == m:
print(' '.join(map(str, out)))
return
for i in range(idx, n):
if not visited[i]:
visited[i] = True
out.append(i+1)
solve(depth+1, m, i+1)
visited[i] = False
out.pop()
solve(0, m,0)
- solve(0, m, 0) -> v = [t,f,f,f] out = [1]
- solve(1,m,1)-> v = [t,t,f,f] pit = [1,2]
- solve(1
'알고리즘 > 백준' 카테고리의 다른 글
[백준-파이썬] 2941번: 크로아티아 알파벳 (0) | 2020.08.25 |
---|---|
[백준-파이썬] 5622번: 다이얼 (0) | 2020.08.21 |
[백준-파이썬] 1157번: 단어공부 (0) | 2020.08.20 |
[백준 -파이썬] 10809 알파벳 찾기 (0) | 2020.08.19 |
15649 N과 M_1(백트랙킹) (0) | 2020.08.07 |