Advertisement
danchaofan

Euler #89

Dec 18th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.86 KB | None | 0 0
  1. def remake(n):
  2.     value = 0
  3.     skip = False
  4.     for x in range(len(n)):
  5.         if skip:
  6.             skip = False
  7.             continue
  8.         try:
  9.             if values[n[x]] < values[n[x + 1]]:
  10.                 value += (values[n[x + 1]] - values[n[x]])
  11.                 skip = True
  12.                 continue
  13.         except IndexError:
  14.             pass
  15.         value += values[n[x]]
  16.     length = 0
  17.     for y in str(value):
  18.         if y in "49":
  19.             length += 2
  20.         elif int(y) < 5:
  21.             length += int(y)
  22.         elif int(y) >= 5:
  23.             length += (int(y) % 5) + 1
  24.     return len(n) - length
  25.  
  26. values = {"M": 1000, "D": 500, "C": 100, "L": 50, "X": 10, "V": 5, "I": 1}
  27. answer = 0
  28. for a in list(open("roman.txt")):
  29.     num = a.rstrip()
  30.     while num[0] == "M":
  31.         num = num[1:]
  32.     answer += remake(num)
  33. print(answer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement