BOJ遡及
backtracking,DFSの概念が分からないので,まず例を通してbacktrackingの概念を学習した.
リファレンス
質問する
コードソース
ソリューションでは、理解が最も容易です.
リファレンス
質問する
15649 NとM(1)
N, M = map(int, input().split())
visited = [False] * N # 탐사 여부 check
out = [] # 출력 내용
def solve(depth, N, M):
if depth == M: # 탈출 조건
print(' '.join(map(str, out))) # list를 str으로 합쳐 출력
return
for i in range(len(visited)): # 탐사 check 하면서
if not visited[i]: # 탐사 안했다면
visited[i] = True # 탐사 시작(중복 제거)
out.append(i+1) # 탐사 내용
solve(depth+1, N, M) # 깊이 우선 탐색
visited[i] = False # 깊이 탐사 완료
out.pop() # 탐사 내용 제거
solve(0, N, M)
コードソース
ソリューションでは、理解が最も容易です.
Reference
この問題について(BOJ遡及), 我々は、より多くの情報をここで見つけました https://velog.io/@ann9902/BOJ-백트래킹テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol