# [12\. Integer to Roman](https://leetcode.com/problems/integer-to-roman/)
:::spoiler Hint
```cpp=
class Solution {
public:
string intToRoman(int num)
{
// Vector of pairs, each pair contains an integer and its corresponding Roman numeral representation
// Initialize the resulting Roman numeral string
// Iterate over each symbol in the vector
// While the current number is greater than or equal to the integer value of the symbol
// Subtract the integer value from the number
// Append the corresponding Roman numeral to the result
// Return the resulting Roman numeral string
}
};
```
:::
:::spoiler Solution
```cpp=
class Solution {
public:
string intToRoman(int num)
{
vector<pair<int, string>> symbols = {
{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"}
};
string roman;
for (auto symbol : symbols)
{
while (num >= symbol.first)
{
num -= symbol.first;
roman += symbol.second;
}
}
return roman;
}
};
```
- T: $O(N)$
- S: $O(1)$
:::