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

Beginner

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

소개

로마 숫자는 고대 로마에서 유래된 숫자 체계입니다. 오늘날에도 책의 장 번호 매기기, 영화 속편 번호 매기기 등 다양한 맥락에서 사용됩니다. 이 챌린지에서는 1 에서 3999 사이의 정수 (포함) 를 로마 숫자 표현으로 변환하는 함수를 만드는 과제를 수행하게 됩니다.

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

1 에서 3999 사이의 정수 num을 입력받아 로마 숫자 표현을 문자열로 반환하는 함수 to_roman_numeral(num)을 작성하십시오.

정수를 로마 숫자 표현으로 변환하려면 (로마 값, 정수) 형식의 튜플을 포함하는 조회 목록 (lookup list) 을 사용할 수 있습니다. 그런 다음 for 루프를 사용하여 조회 목록의 값을 반복하고 divmod()를 사용하여 num을 나머지로 업데이트하고 로마 숫자 표현을 결과에 추가할 수 있습니다.

함수는 입력 정수의 로마 숫자 표현을 반환해야 합니다.

def to_roman_numeral(num):
  lookup = [
    (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'),
  ]
  res = ''
  for (n, roman) in lookup:
    (d, num) = divmod(num, n)
    res += roman * d
  return res
to_roman_numeral(3) ## 'III'
to_roman_numeral(11) ## 'XI'
to_roman_numeral(1998) ## 'MCMXCVIII'

요약

이 챌린지에서는 정수를 로마 숫자 표현으로 변환하는 방법을 배웠습니다. (로마 값, 정수) 형식의 튜플을 포함하는 조회 목록 (lookup list) 과 for 루프를 사용하여 조회 목록의 값을 반복했습니다. 또한 divmod()를 사용하여 num을 나머지로 업데이트하고 로마 숫자 표현을 결과에 추가했습니다.