[c++] 프로그래머스: 깊이 우선 탐색(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으로 변환할 수 있는지 return 하도록 solu..
[c++] DFS(깊이 우선 탐색) / 개념 / 함수 구현
DFS(깊이 우선 탐색) - 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법 - 스택 또는 재귀함수로 구현 DFS: Stack(스택) // DFS 구현 - 스택 // 답: 1, 2, 4, 6, 5, 7, 3 #include #include #include using namespace std; // 인접행렬로 표현한 그래프 vector adjacent = { { 0,1,1,0,0,0,0 }, { 1,0,0,1,1,0,0 }, { 1,0,0,0,0,0,1 }, { 0,1,0,0,0,1,0 }, { 0,1,0,0,0,1,0 }, { 0,0,0,1,1,0,1 }, { 0,0,1,0,0,1,0 }, }; // 노드 방문 여부 표시 벡터 ..