Mi permetto di dissentire per ciò che la maggior parte delle risposte dice. Mentre non mi aspetto che un programmatore di qualsiasi livello sia in grado di venire da solo sull'algoritmo di Dijkstra, mi aspetterei sicuramente che potesse trovare un modo (efficiente o meno) per risolvere il problema.
Ad esempio, hai detto come commento a parte che sei riuscito a creare bubble sort da solo. So che è il più difficile degli algoritmi di ordinamento, ma hai trovato un modo per risolvere un problema, ed è quello che mi aspetto che i programmatori siano in grado di: trovare un modo per risolvere i problemi.
Naturalmente, anche investigare e trovare soluzioni fatte da altri funzionano, ma l'estremo di quel punto è un ragazzo che non pensa a se stesso e i cui programmi sono un compendio di ricerche su Google.
Penso di sembrare più duro di quanto io voglia realmente, ma il mio punto è: mi aspetto che un programmatore sia abbastanza creativo da trovare una soluzione a un problema, anche se la soluzione è buggata o disordinata.
Quindi, tornando al tuo caso, non penso che dovresti venire con l'algoritmo di Dijkstra, ma se hai la possibilità di scrivere un algoritmo per provare diverse possibilità e trovare il percorso più breve senza finire su un ciclo infinito, quindi hai la mia approvazione.
(A proposito la mia approvazione conta nello stesso ordine di importanza di un coupon gratuito per l'autolavaggio.)