f=[0,1] gets.chop.chars{|c| x=c.ord-48 f=[[f[0]+x/5,f[1]+2-x/5].min,[f[0]+1+x/5,f[1]+1-x/5].min] f=[[f[0]+x%5,f[1]+5-x%5].min,[f[0]+1+x%5,f[1]+4-x%5].min] } p [f[0],f[1]+1].min