>>59

こんなんでどうだろ。

rotatemaxright[lst_] := Which[
 Max[lst] == Last[lst], lst,
 True, rotatemaxright[RotateRight[lst]]];

Forでなくて再帰使ってるけど。3行で。