[LeetCode] 12. Integer to Roman

Chobby·2024년 8월 21일
1

LeetCode

목록 보기
49/194

아래와 같이 풀이하여 문제를 해결할 수 있다.

문제에서 상냥하게 4와 9가 포함된 1000 미만의 예시를 모두 잡아주기 때문에 복잡한 로직으로 접근할 필요가 없음

😎풀이

function intToRoman(num: number): string {
    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 result = ""
    let curNum = num
    
    for(const curRomanNum of romanNum) {
        const quot = Math.floor(curNum/curRomanNum)
        if(quot < 1) continue
        const curIndexSpell = romanNum.indexOf(curRomanNum)
        result += (romanSpell[curIndexSpell]).repeat(quot)
        curNum -= (curRomanNum*quot)
    }

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

0개의 댓글