프로그래머스 여행경로 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