[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('')
}