[LeetCode] Roman to Integer - JavaScript


👩🏻‍💻 문제

LeetCode #13 Roman to Integer



👩🏻‍💻 풀이

var romanToInt = function(s) {
    const 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++) {
        const cur = map[s[i]];
        const next = map[s[i+1]];
        
      // 로마 숫자 계산 규칙
        if(cur < next) {
            result -= cur;
        } else { 
            result += cur; 
        }
    }
    return result;
};


// ex) s = "LVIII"

// i = 'L', i+1 = 'V'
// cur = 50, next = 5
// result = 0 + 50 = 50

// i = 'V', i+1 = 'I'
// cur = 5, next = 1
// result = 50 + 5 = 55

// i = 'I', i+1 = 'I'
// cur = 1, next = 1
// result = 55 + 1 = 56

// i = 'I', i+1 = 'I'
// cur = 1, next = 1
// result = 56 + 1 = 57

// i = 'I', i+1 = 'I'
// cur = 1, next = 1
// result = 57 + 1 = 58





참고자료 - 로마 숫자 표기법

좋은 웹페이지 즐겨찾기