vector<string> answer;
bool visited[100000001];
bool flag = false;
int cnt = 0;
void dfs(string cur, vector<vector<string>> tickets)
{
if (cnt == tickets.size())
flag = true;
answer.push_back(cur);
for (int i = 0; i < tickets.size(); i++)
{
if (!visited[i] &&
tickets[i][0] == cur)
{
visited[i] = true;
cnt++;
dfs(tickets[i][1], tickets);
if (!flag)
{
answer.pop_back();
visited[i] = false;
}
}
}
}
vector<string> solution(vector<vector<string>> tickets)
{
sort(tickets.begin(), tickets.end());
dfs("ICN", tickets);
return answer;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[2] 오픈 채팅방 (0) | 2022.08.11 |
---|---|
[2] 이진 변환 반복하기 (0) | 2022.08.11 |
[1] 신고 결과 받기 (0) | 2022.05.31 |
[2] 기능 개발 (0) | 2022.05.31 |
[3] N으로 표현 (0) | 2022.05.31 |