개발 공부/알고리즘 문제 풀이
[LeetCode] 12. Integer to Roman
종범2
2021. 6. 23. 20:39
문제
LeetCode 12. Integer to Roman
https://leetcode.com/problems/integer-to-roman/
Integer to Roman - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
언어
자바스크립트(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.
복기
- 나머지와, 몫을 이용해야 한다는 점을 떠올리면 쉽게 풀 수 있음.