알고리즘/python
[python/파이썬] 백준 15649 N과 M (1)
ㅌㅇㄴ
2022. 11. 30. 21:31
반응형
[문제 출처]
https://www.acmicpc.net/problem/15649
15649번: N과 M (1)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
[소스 코드]
dfs 알고리즘을 사용해서 모든 경우의 수열을 출력하였다.
#15649
n, m = map(int,input().split())
sq = []
def dfs():
if len(sq)==m:
print(' '.join(map(str,sq)))
return
for i in range(1,n+1):
if i not in sq:
sq.append(i)
dfs()
sq.pop()
dfs()
n = 4, m = 2일 때를 예를 들어보면, 아래와 같이 된다.
과정의 일부만 적어보았다. dfs()는 계속해서 dfs()를 호출하므로 구분을 위해서 숫자와 여러 색을 사용했다.
반응형