Mi permetto di differire per ciò che dice la maggior parte delle risposte. Anche se non mi aspetto che un programmatore di qualsiasi livello sia in grado di inventare da solo l'algoritmo di Dijkstra, sicuramente mi aspetterei che trovasse un modo (efficiente o meno) per risolvere il problema.
Ad esempio, hai detto come commento laterale che sei stato in grado di inventare il bubble sort da solo. So che è il più avanzato 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.
Certo, anche investigare e trovare soluzioni fatte da altri funziona, ma l'estremo di quel punto è un ragazzo che non pensa a se stesso e i cui programmi sono un compendio delle ricerche di Google.
Penso di sembrare più duro di quanto realmente voglia, ma il mio punto è: mi aspetto che un programmatore sia abbastanza creativo da trovare una soluzione a un problema, anche se la soluzione è buggy o disordinata.
Quindi, tornando al tuo caso, non penso che dovresti inventare 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, allora hai la mia approvazione.
(A proposito, la mia approvazione conta nello stesso ordine di importanza di un coupon per autolavaggio gratuito.)