[LeetCode] 13. Roman to Integer

Chobby·2024년 8월 22일
1

LeetCode

목록 보기
50/194

이전 문제와 비슷하게 로마 문자를 선언하고 해당 문자에 해당하는 인덱스에 수를 집어넣는다.

해당 문제는 3999 까지의 로마 숫자가 입력으로 주어지기에 복잡한 풀이과정을 사용할 필요가 없음

function romanToInt(s: string): number {
    const romanNum = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
    const romanSpell = ['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'];
    let curS = s
    let result = 0
    for(let i = 0; i < romanSpell.length; i++) {
        const curSpell = romanSpell[i]
        if(curS[0] === curSpell) {
            result += romanNum[i]
            curS = curS.slice(1)
            i = -1
            continue
        } else if(curS.slice(0, 2) === curSpell) {
            result += romanNum[i]
            curS = curS.slice(2)
            i = -1
            continue
        }
    }

    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글