[Leetcode] 12. Integer to Roman
Problem
주어진 숫자값을 로마 숫자로 표현하기
| Symbol | Value |
|---|---|
| I | 1 |
| V | 5 |
| X | 10 |
| L | 50 |
| C | 100 |
| D | 500 |
| M | 1000 |
Solution
- 로마 심볼의 배열을 내름차순으로 생성한다.
- 인덱스를 이동하며 그 수를 주어진 값에서 나눠서 값이 존재하면 존재하는 만큼 심볼을 생성한다.
- 주어진 값이 0이 될때까지 심볼 배열의 인덱스를 이동하며 계산을 반복한다.
JS CODE
javascript
/**
* @param {number} num
* @return {string}
*/
var intToRoman = function(num) {
let answer = []
const romans = [
[1000, 'M'],
[900, 'CM'],
[500, 'D'],
[400, 'CD'],
[100, 'C'],
[90, 'XC'],
[50, 'L'],
[40, 'XL'],
[10, 'X'],
[9, 'IX'],
[5, 'V'],
[4, 'IV'],
[1, 'I'],
]
for(const [value, symbol] of romans) {
while(parseInt(num / value)) {
answer.push(symbol)
num -= value
}
}
return answer.join('')
}