[JavaScript] 리트코드 - #12 Integer to Roman (Medium)

배똥회장·2022년 11월 23일
0

📝 문제

리트코드 - #12 Integer to Roman (Medium)


📝 답안

📌 작성코드

var intToRoman = function(num) {
    const value = [1000, 500, 100, 50, 10, 5, 1];
    const symbol = ["M", "D", "C", "L", "X", "V", "I"];

    let result = "";

    for (let i = 0; i < 7; i++) {
        let number = parseInt(num / value[i]);
        if (i % 2 == 0) {
            num %= value[i];
            if (i == 0) {
                result += symbol[i].repeat(number);
            } else {
                if (number == 4) {
                    result += symbol[i] + symbol[i-1];
                } else {
                    result += symbol[i].repeat(number);
                }
            }
        } else {
            if (parseInt(num / value[i+1]) == 9) {
                result += symbol[i+1] + symbol[i-1];
                num %= value[i+1];
                i++;
            } else {
                result += (symbol[i].repeat(number));
                num %= value[i];
            }
        }
    }

    return result;
};

📌 결과


📌 검색한 내용

다른 언어의 경우 문자열을 반복할 때 "a" * 100 으로 해도 원하는 결과값을 얻을 수 있지만 자바스크립트에서 불가능하기 때문에 repeat() 함수를 사용해야 함.

profile
어쩌면 개발자

0개의 댓글