package com.codewars.romannumerals;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * MIT License
 * (c) 2017 Ricardo Constantino
 */

public class RomanNumerals {
    public static void main(String[] args) {
        RomanNumerals i = new RomanNumerals();

        System.out.println(i.solution(1));
        System.out.println(i.solution(4));
        System.out.println(i.solution(6));
        System.out.println(i.solution(8));
        System.out.println(i.solution(3));
        System.out.println(i.solution(99));
        System.out.println(i.solution(399));
        System.out.println(i.solution(3000));
    }

    public String solution(int value) {
        Map<Integer, String> map = new LinkedHashMap<>();
        map.put(1000,"M");
        map.put(900, "CM");
        map.put(500, "D");
        map.put(400, "CD");
        map.put(100, "C");
        map.put(90,  "XC");
        map.put(50,  "L");
        map.put(40,  "XL");
        map.put(10,  "X");
        map.put(9,   "IX");
        map.put(5,   "V");
        map.put(4,   "IV");
        map.put(1,   "I");

        StringBuilder res = new StringBuilder();

        for (int num : map.keySet()) {
            while (num <= value) {
                res.append(map.get(num));
                value -= num;
            }
        }

        return res.toString();
    }
}
