문제 링크 : Roman to Integer
/**
* @param {string} s
* @return {number}
*/
var romanToInt = function(s) {
let romanObj = new Map();
romanObj.set("I", 1).set("V", 5).set("X", 10).set("L", 50).set("C", 100).set("D", 500).set("M", 1000)
let sum = 0
for(let i=0; i<s.length; i++) {
if((s[i] === "I" && s[i+1] === "V") || (s[i] === "I" && s[i+1] === "X")) {
sum += romanObj.get(s[i+1]) - romanObj.get(s[i])
i++
continue
}
if((s[i] === "X" && s[i+1] === "L") || (s[i] === "X" && s[i+1] === "C")) {
sum += romanObj.get(s[i+1]) - romanObj.get(s[i])
i++
continue
}
if((s[i] === "C" && s[i+1] === "D") || (s[i] === "C" && s[i+1] === "M")) {
sum += romanObj.get(s[i+1]) - romanObj.get(s[i])
i++
continue
}
sum += romanObj.get(s[i])
}
return sum
};
/**
* @param {string} s
* @return {number}
*/
var romanToInt = function(s) {
let map = {"I":1, "V":5, "X":10, "L":50, "C":100, "D":500, "M":1000}
let result = 0;
for(let i=0; i<s.length; i++) {
let curr = map[s[i]]
let next = map[s[i+1]]
if(curr < next) {
result += next-curr
i++
} else {
result += curr
}
}
return result
};
let으로 선언한 map, curr, next를 const로 선언하면 Runtime과 Memory 효율 상승
=> Runtime 91 ms, Memory 46.9 MB