LeetCode - 3 : roman to integer

Junho Yun·2024년 3월 18일
post-thumbnail

Q

A

일단 각 symbol을 value와 매칭할 객체를 만들고, 배열의 돌면서 next 값보다 낮을 경우에 특별 처리해서 풀 예정

/**
 * @param {string} s
 * @return {number}
 */
var romanToInt = function (s) {
    let result = 0;
    let arr = s.split('')

    const mapping = {
        "I": 1,
        "V": 5,
        "X": 10,
        "L": 50,
        "C": 100,
        "D": 500,
        "M": 1000,
    }

    for (let i = 0; i < arr.length; i++) {
        const currentVal = mapping[arr[i]];
        const nextVal = mapping[arr[i + 1]];

        if (i === arr.length - 1) {
            result = result + mapping[arr[i]]
            return result;
        }

        if (currentVal >= nextVal) {
            result = result + mapping[arr[i]]
        }
        if (currentVal < nextVal) {
            result = result + nextVal - currentVal
            i++
        }
    }

    return result;
};
profile
의미 없는 코드는 없다.

0개의 댓글