정수를 로마 숫자로 변환하기

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 JavaScript 를 사용하여 정수를 로마 숫자 표현으로 변환하는 방법을 살펴봅니다. 정수 값을 해당 로마 숫자에 매핑하기 위해 조회 테이블을 사용하고, reduce 메서드를 사용하여 값을 반복하고 입력 정수의 로마 숫자 표현을 구성합니다. 이 랩을 마치면 JavaScript 에서 배열과 문자열을 조작하여 복잡한 작업을 수행하는 방법에 대한 더 깊은 이해를 얻게 될 것입니다.

정수를 로마 숫자로 변환하기

정수를 로마 숫자 표현으로 변환하려면 다음 단계를 따르세요.

  1. 터미널/SSH 를 열고 node를 입력하여 코딩 연습을 시작합니다.

  2. toRomanNumeral() 함수는 1에서 3999 사이의 값 (양쪽 포함) 을 허용합니다.

  3. (로마 숫자 값, 정수) 형식의 2-값 배열을 포함하는 조회 테이블을 만듭니다.

  4. Array.prototype.reduce()를 사용하여 lookup의 값을 반복하고 num을 해당 값으로 반복해서 나눕니다.

  5. String.prototype.repeat()를 사용하여 로마 숫자 표현을 누산기에 추가합니다.

다음은 toRomanNumeral() 함수의 코드입니다.

const toRomanNumeral = (num) => {
  const lookup = [
    ["M", 1000],
    ["CM", 900],
    ["D", 500],
    ["CD", 400],
    ["C", 100],
    ["XC", 90],
    ["L", 50],
    ["XL", 40],
    ["X", 10],
    ["IX", 9],
    ["V", 5],
    ["IV", 4],
    ["I", 1]
  ];
  return lookup.reduce((acc, [k, v]) => {
    acc += k.repeat(Math.floor(num / v));
    num = num % v;
    return acc;
  }, "");
};

다음 예제를 사용하여 함수를 테스트할 수 있습니다.

toRomanNumeral(3); // 'III'
toRomanNumeral(11); // 'XI'
toRomanNumeral(1998); // 'MCMXCVIII'

요약

축하합니다! 정수에서 로마 숫자로 변환하는 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 실력을 향상시킬 수 있습니다.