# [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)$ :::