Skip to content

Files

Latest commit

 

History

History
39 lines (36 loc) · 870 Bytes

0012. Integer to Roman.md

File metadata and controls

39 lines (36 loc) · 870 Bytes

Screen Shot 2022-09-01 at 12 01 10

/**
 * @param {number} num
 * @return {string}
 */
var intToRoman = function(num) {
    const obj = {
        "M" : 1000,
        "CM": 900,
        "D" : 500,
        "CD": 400,
        "C" : 100,
        "XC": 90,
        "L" : 50,
        "XL": 40,
        "X" : 10,
        "IX": 9,
        "V" : 5,
        "IV": 4,
        "I" : 1,
    }
    
    let res = "";
    // traverse the key in obj => M, CM, D...
    for(let key in obj) {
        // get each value => 1000, 900, 500...
        let value = obj[key];
        // as long as the given number is larger than value
        while(num >= value) {
            num -= value;
            res += key;
        }
    }
    return res;
};