Backtracking 6

[Python] 10971. 외판원 순회 2

n = int(input()) # 도시의 수 cost = [list(map(int, input().split())) for _ in range(n)] # 비용 행렬 visited = [False for _ in range(n)] # 도시 방문 리스트 (모든 도시를 방문해야 함) answer = 1e9 # 최소 비용이므로 정답 크게크게 def dfs(s, now, total): global answer if answer < total: # 가지치기 return # 이미 비용이 기존에 저장한 순회 경로 비용보다 커졌다면 돌아가 if s == now and False not in visited: # 모든 도시를 방문했고, 시작지점으로 돌아왔다면 if total < answer: # 최소 비용으로 갱신 answ..

Algorithm/Baekjoon 2022.01.15

[Python] 15649. N과 M(1)

방문 처리를 하면서 수열을 구하는 코드. def recur(cur): # m개 골랐다면 print if cur == m: print(*arr) return for i in range(n): if not visited[i]: # 중복 아니라면 visited[i] = True # 방문 처리 arr[cur] = i+1 # 리스트에 숫자 담기 recur(cur + 1) # 그 다음 숫자 들어가서 가져와 visited[i] = False # 다음에 쓰기 위해 방문 처리 해제 # 1부터 자연수 n까지, 중복없이 m개 고른 수열 구하기 n, m = map(int, input().split()) arr = [0 for _ in range(m)] # 길이가 m인 수열 담을 리스트 visited = [False for _..

Algorithm/Baekjoon 2021.09.07