Roman Numerals Encoder
Create a function taking a positive integer as its parameter and returning a string containing the Roman Numeral representation of that integer.
Modern Roman numerals are written by expressing each digit separately starting with the left most digit and skipping any digit with a value of zero. In Roman numerals 1990 is rendered: 1000=M, 900=CM, 90=XC; resulting in MCMXC. 2008 is written as 2000=MM, 8=VIII; or MMVIII. 1666 uses each Roman symbol in descending order: MDCLXVI.
Example:
solution(1000); // should return 'M'
Help:
Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1,000
Remember that there can't be more than 3 identical symbols in a row.
📌 Needs ) 입력한 모든 정수를 로마 기호로 만들어라.
📁 Sol ) map과 while 반복문 활용
function solution(number) {
// convert the number to a roman numeral
let result = '',
decimals = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
roman = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'];
decimals.map(function (value, index) {
while (number >= value) {
result += roman[index];
number -= value;
}
});
return result;
}
💡 Other ways to solve ) forEach 사용
function solution(number) {
// convert the number to a roman numeral
let arr = [1000,900,500,400,100,90,50,40,10,9,5,4,1];
let arr2 = ['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'];
let str = '';
arr.forEach(function(item,index) {
while (number - item >= 0){
str += arr2[index];
number -= item;
}
});
return str;
}