1~3999 사이의 로마자 s를 인자로 주면 그에 해당하는 숫자를 반환하라. 로마 숫자를 숫자로 표기하면 다음과 같다.
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
로마자를 숫자로 읽는 방법은 로마자를 왼쪽부터 차례대로 더하면 된다.
III = 3, XII = 12, XXVII = 27 이다.
그런데 4를 표현할 때는 IIII가 아니라 IV 이다. 뒤의 숫자에서 앞의 숫자를 빼주면 된다. 9는 IX이다.
I는 V와 X앞에 와서 4, 9 X는 L, C앞에 와서 40, 90 C는 D, M앞에 와서 400, 900이다.
function romanToNum(s) {
let roman = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
M: 1000
}
let strArr = s.split('');
let numArr = strArr.map(el => roman[el]);
let sum = 0;
for (let i = 0; i < numArr.length; i++) {
if (numArr[i] < numArr[i+1]) {
sum += (numArr[i+1] - numArr[i]);
i++;
} else {
sum += numArr[i];
}
}
return sum;
}