백준 알고리즘 15641 (N과 M(3)) - python
> https://www.acmicpc.net/problem/15651
N과 M 문제인데 같은 수를 여러 번 골라도 된다!
[문제 풀이]
1. DFS 함수 생성
2. 탈출 조건 depth == M에서 tmp를 join시켜 출력
3. 중복 체크를 하지 안하도 되니 visited 체크 X
4. for문을 돌리며 자연수를 tmp에 append
5. depth 증가시켜서 재귀시키고 백트래킹
import sys
def DFS(depth):
if depth == M:
print(' '.join(map(str, tmp)))
return
else:
for j in range(1, N+1):
tmp.append(j)
DFS(depth+1)
tmp.pop()
return
if __name__ == '__main__':
N, M = map(int, sys.stdin.readline().split())
tmp = []
DFS(0)
728x90
'백준 알고리즘(BOJ)' 카테고리의 다른 글
백준 알고리즘 11047 (동전 0) - python (0) | 2022.05.30 |
---|---|
백준 알고리즘 15642 (N과 M(4)) - python (0) | 2022.05.23 |
백준 알고리즘 10815 (숫자 카드) - python (0) | 2022.05.20 |
백준 알고리즘 7568 (덩치) - python (재풀이) (0) | 2022.05.18 |
백준 알고리즘 15650 (N과 M(2)) - python (재풀이) (0) | 2022.05.17 |
댓글