
[QUIZ] Reverse Roman Numerals
https://py.checkio.org/en/mission/reverse-roman-numerals/
<among one of the most creative solution>
for before, after in [('CM', 'DCCCC'), ('CD', 'CCCC'),
('XC', 'LXXXX'), ('XL', 'XXXX'),
('IX', 'VIIII'), ('IV', 'IIII')]:
roman_string = roman_string.replace(before, after) ~~~~ 틀린 풀이: 2자리가 4자리로 바꾸면 replace연산을 하지말아야할곳을 하게되어 오류발생
<내 풀이>
def reverse_roman(roman_string):
roman_numeral_s = {
'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000, '': 0
}
roman_numeral_d = {
'IV': 4, 'IX': 9, 'XC': 90, 'XL': 40, 'CD':400, 'CM': 900
}
sum = 0
before_char = ''
for c in roman_string:
couple = before_char + c
if couple in roman_numeral_d:
sum += roman_numeral_d.get(couple)
before_char = ''
else:
sum += roman_numeral_s.get(before_char)
before_char = c
sum += roman_numeral_s.get(before_char)
return sum