Train
The journey takes approximately 4 h 31 min. Ticket price is about 19–23 EUR. The travel distance is 394 km.
Carrier is Hungarian Railways (MÁV).
The journey takes approximately 22 min. Ticket price is about 1–3 EUR. The travel distance is 23 km.
Carrier is Czech Railways (ČD).
Train via břeclav
The journey takes approximately 3 h 21 min. Ticket price is about 14–17 EUR. The travel distance is 295 km.
Carrier is Hungarian Railways (MÁV).
The journey takes approximately 1 h 28 min. Ticket price is about 5–10 EUR. The travel distance is 122 km.
Carrier is Czech Railways (ČD).
Bus
The journey takes approximately 4 h 20 min. Ticket price is about 10–14 EUR. The travel distance is 331 km.
Carrier is RegioJet.
The journey takes approximately 1 h 20 min. Ticket price is about 3–5 EUR. The travel distance is 82 km.
Carrier is Arriva Stredni Cechy.
Drive
The drive will take 3 h 42 min.. The distance between Budapest and Olomouc is 397 km. You will use 32 liters of gasoline at a cost of €41.6.
See on this site which rental company has the best deal.