깊이 우선 탐색으로 모든 그래프의 노드를 순회하는 함수 solution()을 작성하세요. 시작 노드는 문자형 start로 주어집니다. graph 배열은 [출발노드,도착노드] 쌍들이 들어 있는 배열입니다. 반환값은 그래프의 시작 노드부터 모든 노드를 깊이 우선 탐색으로 탐색한 경로가 순서대로 저장된 배열입니다.
#include <unordered_map>
#include <unordered_set>
#include <vector>
using namespace std;
unordered_map<char, vector<char>> adjList;
vector<char> result;
unordered_set<char> visited;
void dfs(char node){
visited.insert(node);
result.push_back(node);
for(char neighbor: adjList[node])
{
if(viisted.find(neighbor)==visited.end())
{
dfs(neighbor);
}
}
}
vector<char> solution(vector<pair<char, char>> graph, char start)
{
for(auto& edge: graph)
{
char u= edge.first;
char v= edge.second;
adjList[u].push_back(v);
}
dfs(start);
return result;
}