반응형
https://leetcode.com/problems/bus-routes/description
Bus Routes - LeetCode
Can you solve this real interview question? Bus Routes - You are given an array routes representing bus routes where routes[i] is a bus route that the ith bus repeats forever. * For example, if routes[0] = [1, 5, 7], this means that the 0th bus travels in
leetcode.com
BFS를 이용하여 풀 수 있었습니다.
각 버스 정류장을 경유하는 버스를 간선으로 만들어줍니다.
시작 지점에서 이동할 수 있는 버스들을 찾아주고, 해당 버스들에서 이동 가능한 버스 정류장들로 이동해줍니다.
도착 지점을 찾을 때까지 반복합니다.
class Solution {
public:
vector<int> graph[1000000];
int visitBusStop[1000000] = {0};
bool visitBus[500] = {false};
int numBusesToDestination(vector<vector<int>>& routes, int source, int target) {
for(int bus=0; bus<routes.size(); bus++) {
for(int busStop : routes[bus]) {
graph[busStop].push_back(bus);
}
}
queue<int> q;
q.push(source);
visitBusStop[source] = 1;
while(!q.empty()) {
int curBusStop = q.front();
q.pop();
if(curBusStop == target) {
return visitBusStop[curBusStop] - 1;
}
for(int bus : graph[curBusStop]) {
if(visitBus[bus]) continue;
visitBus[bus] = true;
for(int busStop : routes[bus]) {
if(visitBusStop[busStop]) continue;
visitBusStop[busStop] = visitBusStop[curBusStop] + 1;
q.push(busStop);
}
}
}
return -1;
}
};
반응형
'Algorithm' 카테고리의 다른 글
LeetCode 1930. Unique Length-3 Palindromic Subsequences (1) | 2023.11.14 |
---|---|
LeetCode 2785. Sort Vowels in a String (1) | 2023.11.13 |
LeetCode 386. Lexicographical Numbers (0) | 2023.11.11 |
LeetCode 2642. Design Graph With Shortest Path Calculator (0) | 2023.11.11 |
LeetCode 1743. Restore the Array From Adjacent Pairs (0) | 2023.11.10 |