728x90
반응형
백트래킹(Backtracking)이란 해를 찾는 도중 해가 아니면 되돌아가서 다시 해를 찾아가는 방법을 말한다.
방식에 따라서 깊이우선탐색(Depth-first search, DFS)과 너비우선탐색(Breadth-first search, BFS)으로 나눌 수 있다.
깊이우선탐색(Depth-first search, DFS) jinho-study.tistory.com/865?category=999578
너비우선탐색(Breadth-first search, BFS) jinho-study.tistory.com/866?category=999578
백트래킹 문제로는 대표적인 예시로 여덟 퀸 문제가 있다.
백준 9663번 N-Queen)
def check(n):
for i in range(n):
if row[n] == row[i] or abs(row[n]-row[i]) == n-i:
return 0
return 1
def dfs(n):
global res
if n == N:
res += 1
else:
for i in range(N):
row[n] = i
if check(n):
dfs(n+1)
N = int(input())
row = [0]*N
res = 0
dfs(0)
print(res)
백준 알고리즘 문제 풀이)
https://jinho-study.tistory.com/1095
728x90
반응형
'Agorithm > 자료구조, 알고리즘 정리' 카테고리의 다른 글
다익스트라(Dijkstra) 알고리즘 (백준 문제 포함) (0) | 2021.03.22 |
---|---|
우선순위 큐, 힙(Priority Queue, heap) (백준 문제 포함) (0) | 2021.03.22 |
동적 계획법(Dynamic programming) (백준 문제 포함) (0) | 2021.03.17 |
너비 우선 탐색(breadth-first search, BFS) (백준 문제 포함) (0) | 2021.03.10 |
깊이 우선 탐색(depth-first search, DFS) (백준 문제 포함) (0) | 2021.03.10 |