프로그래머스 여행경로 C++
2023. 10. 19. 13:27ㆍ알고리즘
dfs로 탐색해서 풀면 되는 문제이다. 내가 작성한 코드는 아래와 같다.
#include <string>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
vector<vector<string>> Tickets;
vector<string> Answer;
int visited[10001];
int should_end;
void dfs(string s, int count){
if (count == Tickets.size()){
should_end = 1;
}
else{
for (int i=0;i<Tickets.size();i++){
if (visited[i]==1){
continue;
}
if (Tickets[i][0]!=s){
continue;
}
Answer.push_back(Tickets[i][1]);
visited[i]=1;
dfs(Tickets[i][1], count+1);
if (should_end==0){
visited[i]=0;
Answer.pop_back();
}
}
}
}
vector<string> solution(vector<vector<string>> tickets) {
vector<string> answer;
Tickets = tickets;
sort(Tickets.begin(), Tickets.end());
Answer.push_back("ICN");
dfs("ICN", 0);
for (int i=0;i<Answer.size();i++){
cout<<Answer[i]<<" ";
}
answer=Answer;
return answer;
}
'알고리즘' 카테고리의 다른 글
프로그래머스 H-Index C++ (0) | 2023.10.19 |
---|---|
프로그래머스 K번째 수 C++ (0) | 2023.10.19 |
코드트리 메이즈 러너 C++ (1) | 2023.10.14 |
코드트리 미로 타워 디펜스 C++ (2) | 2023.10.12 |
프로그래머스 의상 C++ (0) | 2023.10.01 |