Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

로마 숫자를 십진수로 변환하는 JavaScript 알고리즘

<시간/>

우리는 로마 숫자 문자열을 받아 10진수(밑수 10)에 해당하는 값을 반환하는 함수를 작성해야 합니다. 따라서 이 함수의 코드를 작성해 보겠습니다 -

예시

const romanToInt = (s) => {
   const legend = "IVXLCDM";
   const l=[1,5,10,50,100,500,1000];
   let sum=0;
   while(s){
      if(!!s[1] && legend.indexOf(s[0]) < legend.indexOf(s[1])){
         sum += (l[legend.indexOf(s[1])] - l[legend.indexOf(s[0])]);
         s = s.substring(2, s.length);
      } else {
         sum += l[legend.indexOf(s[0])];
         s = s.substring(1, s.length);
      }
   }
   return sum;
};
console.log(romanToInt('CLXXVIII'));
console.log(romanToInt('LXXXIX'));
console.log(romanToInt('LV'));
console.log(romanToInt('MDLV'));

출력

콘솔의 출력은 다음과 같습니다. -

178
89
55
1555