로마자에서 숫자로 바꾸기
1~3999 사이의 로마자 s를 인자로 주면 그에 해당하는 숫자를 반환해주세요.
로마 숫자를 숫자로 표기하면 다음과 같습니다.
로마자를 숫자로 읽는 방법은 로마자를 왼쪽부터 차례대로 더하면 됩니다.
III = 3
XII = 12
XXVII = 27
입니다.
그런데 4를 표현할 때는 IIII가 아니라 IV 입니다.
뒤의 숫자에서 앞의 숫자를 빼주면 됩니다.
9는 IX입니다.
roman_to_num('XII')
다음과 같이 호출했을때, 양의 정수 7이 나와야 함.
def roman_to_num(string):
string = list(string)
roma = dict()
roma = {'I' : 1,
'V' : 5,
'X' : 10,
'L' : 50,
'C' : 100,
'D' : 500,
'M' : 1000
}
# 로마자를 숫자로 변환하여 리스트에 입력
new_list = list()
for letter in string:
new_list.append(roma[letter])
sum = 0
for i in range(len(new_list)):
# 리스트 인덱스 범위를 벗어나면 반복문 종료
if (i+1) == len(new_list):
break;
# 다음 인덱스의 리스트 요소값이 현재 인덱스의 그것보다 작다면,
if new_list[i+1] <= new_list[i]:
sum +=new_list[i]
# 현재 인덱스의 요소값이 더 크므로, 로마자
else:
sum -= new_list[i]
sum += new_list[len(new_list)-1]
return sum