Resumiendo un poco, y para que quede claro, el razonamiento que nos lleva a la solución es el siguiente:
El camarero vive entre Madrid y Barcelona. Hay un viajero que vive donde el camarero y gana el triple que él, pero no puede ser Juan, que gana 2 millones (no divisible por tres). Tampoco puede ser Pablo, que vive en Madrid, luego el vecino del camarero es el viajero Pedro, y vive entre Madrid y Barcelona. De aquí deducimos que el viajero que vive en Barcelona, es Juan. Ese viajero se llama igual que el camarero, por lo tanto el camarero es Juan. Finalmente nos dicen que Pedro juega mejor al tenis que el revisor, luego Pedro no es el revisor, por lo tanto es el maquinista.