본문 바로가기
300x250

dfs5

[프로그래머스3단계] 단어 변환 with 자바스크립트(깊이 우선탐색 dfs) 문제설명 두 개의 단어 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을 target으로 .. 2021. 7. 5.
[프로그래머스 3단계] 연결된 정점드 with 자바스크립트(깊이 우선 탐색(DFS)) 문제설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 주의사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i.. 2021. 7. 5.
[프로그래머스 3단계] 여행경로 with 자바스크립트 문제설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 주의사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다. 모든 도시를 방문할 수 없는 경우는 주어지지 않습니다. 입출력예시 코드 function solution(ti.. 2021. 7. 4.
[알고리즘 ]DFS 경로 탐색 경우의 수-인접행렬 with javascript 문제설명 방향그래프가 주어지면 1번 정점에서 n번 정점으로 가는 모든 경로의 가지 수를 출력하는 프로그램을 작성하세요. 예시) 1번정점에서 5번 정점까지 가는 경우의 수는 1->2->3->4->5 1->2->5 1->3->4->2->5 1->3->4->5 1->4->2->5 1->4->5 총 6가지이다. 입출력예시 총 가지수를 출력한다. let arr = [[1,2],[1,3],[1,4],[2,1],[2,3],[2,5],[3,4],[4,2],[4,5]]; console.log("리턴값 :", countDfs(5,arr)); 코드 function countDfs(n, arr) { let count = 0; let graph = Array.from(Array(n + 1), () => Array(n + 1)... 2021. 6. 24.
[알고리즘] DFS - 깊이 우선 탐색 개념 정리 깊이 우선 탐색(Depth First Search)은 탐색을 함에 있어서 보다 깊은 것을 우선적으로 하여 탐색하는 알고리즘이다. 깊이 우선 탐색(Depth First Search)은 맹목적으로 각 노드를 탐색할 때 주로 사용된다. 너비 우선 탐색(Breadth First Search)에선 큐가 사용되었다면, 깊이 우선 탐색(DFS)에서는 재귀와 스택(stack)이 사용된다. DFS 로직을 구현하는 과정에 재귀 함수를 활용하기 때문에, 더 이상 child node가 존재하지 않을 때까지 콜스택의 상단에 계속 쌓이게 되고, 끝에 다다랐을 경우부터 하나씩 pop up되면서 값이 담기기 때문이다. 컴퓨터는 구조적으로 항상 스택의 원리를 사용하기 때문에 스택을 사용하지 않아도 구현이 가능하다는 특징이 있다. DF.. 2021. 6. 24.
반응형