Integer To Roman

Given an integer A, convert it to a roman numeral, and return a string corresponding to its roman numeral version

Note : This question has a lot of scope of clarification from the interviewer. Please take a moment to think of all the needed clarifications and see the expected response using “See Expected Output” For the purpose of this question, https://projecteuler.net/about=roman_numerals has very detailed explanations. 


Input Format

The only argument given is integer A.

Output Format

Return a string denoting roman numeral version of A.

Constraints

1 <= A <= 3999

For Example

Input 1:
    A = 5
Output 1:
    "V"

Input 2:
    A = 14
Output 2:
    "XIV"
Solution:

Time: O(1)

public class Solution {
    public String intToRoman(int A) {
        StringBuilder sb = new StringBuilder();
        while (A >= 1000) {
            sb.append('M');
            A -= 1000;
        }
        if (A >= 900) {
            sb.append("CM");
            A -= 900;
        }
        if (A >= 500) {
            sb.append('D');
            A -= 500;
        }
        if (A >= 400) {
            sb.append("CD");
            A -= 400;
        }
        while (A >= 100) {
            sb.append('C');
            A -= 100;
        }
        if (A >= 90) {
            sb.append("XC");
            A -= 90;
        }
        if (A >= 50) {
            sb.append('L');
            A -= 50;
        }
        if (A >= 40) {
            sb.append("XL");
            A -= 40;
        }
        while (A >= 10) {
            sb.append('X');
            A -= 10;
        }
        if (A >= 9) {
            sb.append("IX");
            A -= 9;
        }
        if (A >= 5) {
            sb.append('V');
            A -= 5;
        }
        if (A >= 4) {
            sb.append("IV");
            A -= 4;
        }
        while (A >= 1) {
            sb.append('I');
            A -= 1;
        }
        return sb.toString();
    }
}

class Solution {
    public String intToRoman(int num) {
      	if (num < 1 || num > 3999) return "";
	
        StringBuilder result = new StringBuilder();

        String[] roman = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
        int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };

        int i = 0;
        while (num >0) {
            while ( num >= values[i]) {
                num -= values[i];
                result.append(roman[i]);
            }
            i++;
        }
        return result.toString();
    }
}