로마에서 정수로
I
, V
, X
, L
, C
, D
및 M
의 7가지 기호로 표시됩니다.기호 값
나는 1
V 5
× 10
L 50
씨 100
디 500
남 1000
예를 들어,
2
는 로마 숫자로 II
로 표시되며, 1을 두 개만 더하면 됩니다. 12
는 XII
로 작성되며 간단히 X + II
입니다. 숫자 27
는 XXVII
로 쓰여지며, 이는 XX + V + II
입니다.로마 숫자는 일반적으로 왼쪽에서 오른쪽으로 큰 순서로 씁니다. 그러나 4의 숫자는
IIII
가 아닙니다. 대신, 숫자 4는 IV
로 쓰여집니다. 1이 5보다 앞에 있기 때문에 빼면 4가 됩니다. 같은 원리가 IX
로 쓰여진 숫자 9에도 적용됩니다. 빼기가 사용되는 경우는 6가지입니다.I
는 V
(5)와 X
(10) 앞에 배치되어 4와 9를 만들 수 있습니다. X
는 L
(50) 및 C
(100) 앞에 배치되어 40 및 90을 만들 수 있습니다. C
를 D
(500) 및 M
(1000) 앞에 배치하여 400 및 900을 만들 수 있습니다. 로마 숫자가 주어지면 정수로 변환하십시오.
예 1:
입력: s = "III"
출력: 3
설명: III = 3.
예 2:
입력: s = "LVIII"
출력: 58
설명: L = 50, V= 5, III = 3.
예 3:
입력: s = "MCMXCIV"
산출: 1994년
설명: M = 1000, CM = 900, XC = 90 및 IV = 4.
제약:
1 <= s.length <= 15
s
에는 ('I', 'V', 'X', 'L', 'C', 'D', 'M')
문자만 포함됩니다. s
가 [1, 3999]
범위의 유효한 로마 숫자임을 보장합니다. 해결책:
class Solution:
def romanToInt(self, s: str) -> int:
sym = {
"I": 1,
"V": 5,
"X": 10,
"L": 50,
"C": 100,
"D": 500,
"M": 1000
}
n = len(s)
val = 0
for i in range(n):
if i < n - 1 and sym[s[i]] < sym[s[i + 1]]:
val -= sym[s[i]]
else:
val += sym[s[i]]
return val
Reference
이 문제에 관하여(로마에서 정수로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/roman-to-integer-2k67텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)