백트래킹 공부 겸 풀어본 문제
경우의 수 출력 문제다.
DFS로 풀었다
처음 짜보는 DFS코드라 어려움이 있었다..ㅎ
def dfs(deepth, n, s) :
if deepth == m :
print(' '.join(s))
else :
for i in range(1, n+1, 1) :
if not str(i) in s :
s.append(str(i))
dfs(deepth+1, n, s)
s.pop()
n, m = map(int, input().split())
ans = []
dfs(0, n, ans)
재귀 함수 문제를 풀며 단련된 나의 두뇌
하지만 재귀함수 안에 for문이 들어가니 다시 처음부터 공부하는 느낌이다.
복학할 때까지 알고리즘만 빡시게 파야겠다
[백준/파이썬]1463 1로 만들기 (1) | 2023.06.09 |
---|---|
[백준/파이썬]15650 N과 M(2) (0) | 2023.06.08 |
[백준/파이썬]1874번 스택수열 (0) | 2023.06.07 |
[백준/파이썬]18870번 좌표 압축 (0) | 2023.06.06 |
[백준/파이썬]14719번 빗물 (0) | 2023.06.06 |