아래와 같이 풀이하여 문제를 해결할 수 있다.
문제에서 상냥하게 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
};