[Leetcode] 12. Integer to Roman

Seongjun Lee·2022년 2월 19일
0

[Leetcode] - Problem

목록 보기
12/43
post-thumbnail

Problem

문제 링크

주어진 숫자값을 로마 숫자로 표현하기

SymbolValue
I1
V5
X10
L50
C100
D500
M1000

Solution

  1. 로마 심볼의 배열을 내름차순으로 생성한다.
  2. 인덱스를 이동하며 그 수를 주어진 값에서 나눠서 값이 존재하면 존재하는 만큼 심볼을 생성한다.
  3. 주어진 값이 0이 될때까지 심볼 배열의 인덱스를 이동하며 계산을 반복한다.

JS CODE

/**
 * @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('')
}
profile
Hi there 👋

0개의 댓글