본문 바로가기

DFS2

[프로그래머스] 깊이/너비 우선 탐색(DFS/BFS) : 단어 변환 📍 문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"] 라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 targe.. 2021. 9. 27.
[Algorithm] 깊이우선탐색(DFS) 과 너비우선탐색(BFS) DFS 와 BFS 는 각각 Depth-First Search 와 Breadth-First Search 로, 깊이우선탐색과 너비우선탐색을 뜻한다. 둘의 차이점과 코드 구현 방법을 구체적으로 알아보고자 한다. BFS 그래프 자료구조형에서 가장 가까운 노드부터 우선적으로 탐색하는 알고리즘이다. 큐를 이용하여 구현할 수 있다. 구현 단계 큐에 탐색 시작 노드를 삽입한다. 큐의 front 를 방문할 때마다 방문 표시를 하고, popleft() 를 한다. 현재 방문하고 있는 노드에 방문하지 않은 인접 노드가 있다면 그 노드를 큐에 넣는다 현재 방문하고 있는 노드에 방문하지 않은 인접 노드가 없다면 큐의 front 을 꺼낸다 반복 실행하여 큐가 완전히 빌 때 종료한다 from collections import deq.. 2021. 6. 30.