문제 링크 : https://leetcode.com/problems/roman-to-integer/
주어진 로마자를 (아라비아)숫자로 반환하는 문제이다.
IV(4)를 예로 들면
V(5)-I(1)을 하여 4가 되는 원리를 아용하여 풀었다.
class Solution:
def romanToInt(self, s: str) -> int:
roman = {
'I' :1,
'V' :5,
'X' :10,
'L' :50,
'C' :100,
'D' :500,
'M' :1000}
sum = 0
pre = 0
for i in reversed(s):
curr = roman[i]
if pre > curr:
sum -= curr
else:
sum += curr
pre = curr
return sum
주어진 로마자 S를 역순으로 하여 탐색하는 값(curr)이 이전 값보다(pre) 작으면 그동안 합한 값에서 탐색하는 값을 빼고 아니라면 계속 더해준다 그리고 이전 값에 Curr를 넣어주면서 계속 업데이트 한다
이거는 근데 약간 로마자 원리를 알고 있어야 풀기 쉬울듯...? 싶다(내가 로마자 연산까지 알아야하나)