#
# @lc app=leetcode id=12 lang=python3
#
# [12] Integer to Roman
#
# https:leetcode.com//problems//integer-to-roman//description//
#
# algorithms
# Medium (49.89%)
# Total Accepted: 207.1K
# Total Submissions: 415.2K
# Testcase Example: '3'
#
# Roman numerals are represented by seven different symbols: I, V, X, L, C, D
# and M.
#
#
# Symbol Value
# I 1
# V 5
# X 10
# L 50
# C 100
# D 500
# M 1000
#
# For example, two is written as II in Roman numeral, just two one's added
# together. Twelve is written as, XII, which is simply X + II. The number
# twenty seven is written as XXVII, which is XX + V + II.
#
# Roman numerals are usually written largest to smallest from left to right.
# However, the numeral for four is not IIII. Instead, the number four is
# written as IV. Because the one is before the five we subtract it making four.
# The same principle applies to the number nine, which is written as IX. There
# are six instances where subtraction is used:
#
#
# I can be placed before V (5) and X (10) to make 4 and 9.
# X can be placed before L (50) and C (100) to make 40 and 90.
# C can be placed before D (500) and M (1000) to make 400 and 900.
#
#
# Given an integer, convert it to a roman numeral. Input is guaranteed to be
# within the range from 1 to 3999.
#
# Example 1:
#
#
# Input: 3
# Output: "III"
#
# Example 2:
#
#
# Input: 4
# Output: "IV"
#
# Example 3:
#
#
# Input: 9
# Output: "IX"
#
# Example 4:
#
#
# Input: 58
# Output: "LVIII"
# Explanation: L = 50, V = 5, III = 3.
#
#
# Example 5:
#
#
# Input: 1994
# Output: "MCMXCIV"
# Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
#
#
class Solution:
def intToRoman(self, num: int) -> str:
result = ''
if num // 1000 != 0:
for i in range(num // 1000):
result += 'M'
num = num % 1000
if num // 900 != 0:
for i in range(num // 900):
result += 'CM'
num = num % 900
if num // 500 != 0:
for i in range(num // 500):
result += 'D'
num = num % 500
if num // 400 != 0:
for i in range(num // 400):
result += 'CD'
num = num % 400
if num // 100 != 0:
for i in range(num // 100):
result += 'C'
num = num % 100
if num // 90 != 0:
for i in range(num // 90):
result += 'XC'
num = num % 90
if num // 50 != 0:
for i in range(num // 50):
result += 'L'
num = num % 50
if num // 40 != 0:
for i in range(num // 40):
result += 'XL'
num = num % 40
if num // 10 != 0:
for i in range(num // 10):
result += 'X'
num = num % 10
if num // 9 != 0:
for i in range(num // 9):
result += 'IX'
num = num % 9
if num // 5 != 0:
for i in range(num // 5):
result += 'V'
num = num % 5
if num // 4 != 0:
for i in range(num // 4):
result += 'IV'
num = num % 4
if num // 1 != 0:
for i in range(num // 1):
result += 'I'
num = num % 1
return result