Roman to Integer (LeetCode)
7314 ワード
問題の説明
せいげんじょうけん
に答える var romanToInt = function(s) {
const alphabet = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
M: 1000
}
const sArr = s.split(''); // 문자 배열
const nArr = []; // 숫자 배열
let alphabetSum = 0; // 해당 문자의 정수값을 저장할 변수
sArr.map((value,idx)=>{
// 현재 문자와 다음 문자가 다를때
if(sArr[idx] !== sArr[idx+1]){
// 현재 문자의 숫자값이 다음문자의 숫자값보다 작을때
if(alphabet[sArr[idx]] < alphabet[sArr[idx+1]]){
alphabetSum += alphabet[value];
nArr.push(alphabetSum * -1);
alphabetSum = 0;
}
// 현재 문자의 숫자값이 다음문자의 숫자값보다 크거나 문자열의 마지막 문자일때
else{
alphabetSum += alphabet[value];
nArr.push(alphabetSum);
alphabetSum = 0;
}
}
// 현재 문자와 다음 문자가 같을때
else
alphabetSum += alphabet[value];
});
return nArr.reduce((sum,cur)=> sum + cur,0);
};
チェックポイント
var romanToInt = function(s) {
const alphabet = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
M: 1000
}
const sArr = s.split(''); // 문자 배열
const nArr = []; // 숫자 배열
let alphabetSum = 0; // 해당 문자의 정수값을 저장할 변수
sArr.map((value,idx)=>{
// 현재 문자와 다음 문자가 다를때
if(sArr[idx] !== sArr[idx+1]){
// 현재 문자의 숫자값이 다음문자의 숫자값보다 작을때
if(alphabet[sArr[idx]] < alphabet[sArr[idx+1]]){
alphabetSum += alphabet[value];
nArr.push(alphabetSum * -1);
alphabetSum = 0;
}
// 현재 문자의 숫자값이 다음문자의 숫자값보다 크거나 문자열의 마지막 문자일때
else{
alphabetSum += alphabet[value];
nArr.push(alphabetSum);
alphabetSum = 0;
}
}
// 현재 문자와 다음 문자가 같을때
else
alphabetSum += alphabet[value];
});
return nArr.reduce((sum,cur)=> sum + cur,0);
};
Reference
この問題について(Roman to Integer (LeetCode)), 我々は、より多くの情報をここで見つけました https://velog.io/@vsnm25/Roman-to-Integerテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol