문제
LeetCode 12. Integer to Roman
https://leetcode.com/problems/integer-to-roman/
언어
자바스크립트(JavaScript)
접근 방법
- 큰 수를 의미하는 문자부터 몇 개를 사용해야 하는지 결정한다.
- 문자가 몇 개인지는 그 수로 나눈 몫으로 구하며, 나머지 수는 나눈 나머지로 구한다.
코드
/**
* @param {number} num
* @return {string}
*/
var intToRoman = function(num) {
let result = '';
const table = [
{
Symbol:'M',
Value:1000
},
{
Symbol:'CM',
Value:900
},
{
Symbol:'D',
Value:500
},
{
Symbol:'CD',
Value:400
},
{
Symbol:'C',
Value:100
},
{
Symbol:'XC',
Value:90
},
{
Symbol:'L',
Value:50
},
{
Symbol:'XL',
Value:40
},
{
Symbol:'X',
Value:10
},
{
Symbol:'IX',
Value:9
},
{
Symbol:'V',
Value:5
},
{
Symbol:'IV',
Value:4
},
{
Symbol:'I',
Value:1
}
];
for (let i=0; i<table.length; i++){
let size = parseInt(num / table[i].Value);
num = num % table[i].Value;
for (let j=0; j<size; j++){
result += table[i].Symbol;
}
}
return result
};
결과
Runtime: 132 ms, faster than 99.21% of JavaScript online submissions for Integer to Roman.
Memory Usage: 46 MB, less than 34.83% of JavaScript online submissions for Integer to Roman.
복기
- 나머지와, 몫을 이용해야 한다는 점을 떠올리면 쉽게 풀 수 있음.
'개발 공부 > 알고리즘 문제 풀이' 카테고리의 다른 글
[LeetCode] 92. Reverse Linked List II (0) | 2021.06.24 |
---|---|
[LeetCode] 1. Two Sum (0) | 2021.06.23 |
LeetCode 11. Container With Most Water (0) | 2021.06.23 |
[LeetCode] 8. String to Integer (atoi) (0) | 2021.06.23 |
[LeetCode] 6. ZigZag Conversion (0) | 2021.06.23 |