3 of 4 each->map (-1 char)

Ruby, 136

i=gets
Hash[*%w[IV 4 IX 9 XL 40 XC 90 CD 400 CM 900 I 1 V 5 X 10
L 50 C 100 D 500 M 1000].flatten].map{|k,v|i.gsub!(k,?++v)}
puts eval i