Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- BFS
- 그리디알고리즘
- react
- 알고리즘
- CSS
- 코딩테스트
- 코테
- 자료구조
- 백준
- 코딩테스트실력진단
- DFS활용
- react-query
- 완전탐색
- 스택자료구조
- django
- 백준알고리즘
- DFS
- 코드트리
- 블챌
- 문자열
- DP
- 파이썬
- 구현
- 스택
- 그리디
- JS
- DFS기초
- Express
- 재귀
- socket.io
Archives
- Today
- Total
꾸준하게 거북이처럼
DFS의 활용과 Backtracking(백트래킹) 본문
14502번: 연구소
인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크
www.acmicpc.net
백준 14502번 문제를 풀면서 필요한 개념을 정리하고자 한다.
DFS ( Depth First Search : 깊이 우선 탐색 ) 의 개념
그래프 전체를 탐색하는 방법 중 하나로,
시작 노드 부터 다음 branch로 넘어가기 전에 해당 branch를 완벽하게 탐색하는 방법.
DFS의 활용
주로 역량 테스트에서 사용되는 방식으로,
1. 그래프를 모두 탐색
2. 특정 조합 구하기/순열
위 그림을 보면 DFS 알고리즘을 이용해서 집합 {1, 2, 3}의 모든 조합을 구할 수 있다.
만약, 여기서 특정 조건을 둔다면? -> 특정 조합을 구할 수 있음, 백트래킹과 연관 지을 수 있다!
Backtracking
DFS를 사용해서 만약에 조건에 맞지 않으면 바로 중단하고 이전으로 돌아가서 다시 다른 경우를 탐색하는 알고리즘.
여기서 중요한 것은, 이전으로 돌아가서 다시 탐색하기 때문에 이전 상태로 원상복구 시켜줘야 한다는 것!!
순열이라면 그 전 상태로 돌아가서 순열을 출력해야 하므로, queue에서 pop을 다시 한다던지 방문상태를 다시 false로 바꾼다던지 말이다.
백준 14502문제에서 이를 적용할 수 있다. 다음계속!!!
참고
[파이썬으로 시작하는 삼성 SW역량테스트] - 7. DFS와 BFS의 활용
※실제 시험 시itertools 모듈이 사용 불가능하다는 말이 있습니다. 게시글은 나중에 수정하겠습니다. 저번...
blog.naver.com
'Algorithm 문제 & 공부 > DFS' 카테고리의 다른 글
중복순열 구하기 (0) | 2022.06.20 |
---|---|
바둑이 승차 - CutEdgeTech (0) | 2022.06.20 |
합이 같은 부분집합 - DFS기초 (0) | 2022.06.20 |
부분집합구하기 - DFS 기초 (0) | 2022.06.20 |
백준 14502 문제 - 연구소 (0) | 2022.05.27 |
Comments