[TIL]Code kata Week 2-Day 1ローマ字から数字に変換
質問する
ローマ字から数字に変換
パラメータとして1~3999のアルファベットsを使用する場合は、対応する数値を返します.ローマ数字を数字としてマークします.
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
ローマ字を数字で読む方法は、左からローマ字を順番に付けます.III=3個のXII=12個のXXXVII=27.
しかし表現4の場合はIIIではなくIV後ろの数字から前の数字を引けばいいです9はIXです.
私はVとXの前に来て、4,9 XはL,Cの前に来て、40,90 CはD,Mの前に来て、400900
ローマ字を簡単に数字に変換する論理が必要です.しかし、問題には2つの例外がある.1つ目は4、2つ目は9の表現です.
function romanToNum(s) {
// 여기에 코드를 작성해주세요.
const Roma = {
I : 1,
V : 5,
X : 10,
L : 50,
C : 100,
D : 500,
M : 1000,
}
const romArr= s.split('');
const numArr = romArr.map(el => Roma[el]);
let sum=0;
for(let i=0 ;i < numArr.length ;i++) {
if(numArr[i] < numArr[i+1]) {
sum = sum-numArr[i];
} else {
sum = sum + numArr[i];
} ;
}
return sum;
}
前の数字が後の数字より小さい場合を探すために複文を用いた.現在の数字が後の数字より小さい場合、結果から前の数字を減算すると4,9を表すことができます.
Reference
この問題について([TIL]Code kata Week 2-Day 1ローマ字から数字に変換), 我々は、より多くの情報をここで見つけました https://velog.io/@dev_marco/TILCode-kata-Week2-Day1-로마자에서-숫자로-바꾸기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol