로마 숫자 text를 숫자로 환산하기
분석
로마 숫자(I, II, IV, V, X...)를 숫자로 바꿔 출력해야 한다.
풀이
def roman_to_num(string):
roman = {
'I':1,
'V':5,
'X':10,
'L':50,
'C':100,
'D':500,
'M':1000
}
data = 0;
for i in range(len(string)):
if i < len(string)-1 and roman[string[i+1]] > roman[string[i]]:
data -= roman[string[i]]
else:
data += roman[string[i]]
return data
print(roman_to_num('CD'))
해석
로마 숫자의 patter을 분석해보면 앞뒤로 붙은 로마자를 기준으로 앞이 크면 '+' 처리를 하면 된다. 반대로 뒤가 크면 이는 뒤의 값에서 앞의 값을 뺀다는 의미(예로 IV 는 5 - 1 = 4 이다)
그러므로 로마자가 담긴 배열의 앞에서부터 순차적으로 접근, 뒤의 값과 비교하여 두 가지 처리 중 하나를 총 값에 누적처리 하면 됨
Author And Source
이 문제에 관하여(로마 숫자 text를 숫자로 환산하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jinybear/로마-숫자-text를-숫자로-환산하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)