DFS2 [Algorithm] 타겟 넘버 - 프로그래머스 Lv.2 [ 코딩테스트 연습 - 프로그래머스 Lv.2 ] 문제명 : 타겟 넘버 [깊이/너비 우선탐색(DFS/BFS)] 사용 언어 : Python3 사용 알고리즘 : DFS (깊이 우선 탐색) 이 문제는 가능한 모든 경우의 수를 탐색해야 하므로, DFS(깊이 우선 탐색)을 사용하는 것이 적절하다. DFS를 통해 가능한 모든 순열을 생성하고, 각 순열에 대해 주어진 규칙에 따라 타겟 넘버를 만들 수 있는지 확인하는 방식으로 접근할 수 있다. DFS는 모든 경우의 수를 확인하는데에 유용하며, 이 문제에서도 모든 가능한 더하고 빼는 경우를 탐색할 수 있다. 문제 설명 ▽ 문제 해결방법 설계 및 코드작성. : DFS를 사용하여 가능한 모든 경우를 탐색하는 방법을 선택. : 재귀 함수를 통해 모든 순열을 생성하면서 각각의 .. Algorithm 2024. 1. 12. [Algorithm] 깊이/너비 우선 탐색 (DFS/BFS) DFS (Depth First Search) : 깊이 우선 탐색 ▽ DFS 알고리즘 (코드블럭을 한글로 표현) 시작 노드를 옅은 회색 표시 후, 스택에 넣음 스택에 아무 노드가 없을 때까지: 스택 가장 위 노드를 꺼낸다 노드를 방문 (진한 회색) 표시한다 인접한 노드들을 모두 보면서: 처음 방문하거나 스택에 없는 노드면: 옅은 회색 표시를 해준다 스택에 넣어준다 ▽ DFS로 연결된 역 찾기 from collections import deque def dfs(graph, start_node): """dfs 함수""" stack = deque() # 빈 스택 생성 # 모든 노드를 처음 보는 노드로 초기화 for station_node in graph.values(): station_node.visited =.. Algorithm 2024. 1. 12. 이전 1 다음 728x90