Cute Running Puppy
반응형

dfs 3

2468_안전 영역

문제 2468번: 안전 영역 (acmicpc.net) 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 접근 방식 1. 상하좌우를 돌며 내린 비의 양보다 높은 곳이 있는지 파악한다 -> DFS 활용 2. 높다면 방문처리 한 뒤 return True 3. 낮다면 return False 이 과정을 가장 높은 지역 크기 만큼 반복 (내리는 비의 양) 주의할 점 1. 재귀 함수 범위에 주의하자 # 재귀 함수 범위를 늘려주는 코드 import sys sys.setrecursionlimit(10**7) 2. 제공된 graph를 ..

algorithm/Baekjoon 2023.04.24

2667_단지번호붙이기

2667번: 단지번호붙이기 (acmicpc.net) 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 접근 방법 상하좌우를 모두 돌며 집이 연결되어 있는지 확인 -> DFS 사용 1. 노드 == 1이면 0으로 변경하고 상, 하, 좌, 우 확인 후 return True 2. 노드 == 0 이면 return False 3. global 변수를 사용하여 상하좌우 확인할 때 집의 개수 추가 주의 할 점 1. 상하좌우를 확인 할 때 범위를 넘어갈 수 있으므로 미리 예외 처리 하기 2. graph 값 int 로 변환하기 정..

algorithm/Baekjoon 2023.04.24

DFS

Depth First Search 깊이 우선 탐색 그래프의 깊은 부분을 우선적으로 탐색하는 알고리즘 특정 경로로 탐색하다가 특정 상황에서 최대한 깊숙히 들어가 노드를 방문한 뒤, 다시 돌아가 다른 경로로 탐색하는 알고리즘 다음 분기로 넘어가기 전 해당 분기를 완벽하게 탐색하는 방법 BFS 보단 느리다 (단순 검색 속도) 백트래킹과 연관된다 DFS를 사용하는 경우 모든 노드를 방문하고자 할 때 순회를 하고자 할 때 경로에 특징을 저장해야 할 때 검색 대상 그래프가 클 때 cf) 최단거리는 BFS가 유리 동작 방식 탐색 시작 노드를 스택에 삽입하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를..