-
Notifications
You must be signed in to change notification settings - Fork 1
/
Problem089_RomanNumerals.java
95 lines (88 loc) · 13.3 KB
/
Problem089_RomanNumerals.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/**
* Created by Sneeuwpopsneeuw on 01-Apr-17.
*/
public class Problem089_RomanNumerals extends Problem {
public static void main(String[] args) {
String[] input = new String[] {
"MMMMDCLXXII","MMDCCCLXXXIII","MMMDLXVIIII","MMMMDXCV","DCCCLXXII","MMCCCVI","MMMCDLXXXVII","MMMMCCXXI","MMMCCXX","MMMMDCCCLXXIII","MMMCCXXXVII","MMCCCLXXXXIX","MDCCCXXIIII","MMCXCVI","CCXCVIII",
"MMMCCCXXXII","MDCCXXX","MMMDCCCL","MMMMCCLXXXVI","MMDCCCXCVI","MMMDCII","MMMCCXII","MMMMDCCCCI","MMDCCCXCII","MDCXX","CMLXXXVII","MMMXXI","MMMMCCCXIV","MLXXII","MCCLXXVIIII","MMMMCCXXXXI","MMDCCCLXXII",
"MMMMXXXI","MMMDCCLXXX","MMDCCCLXXIX","MMMMLXXXV","MCXXI","MDCCCXXXVII","MMCCCLXVII","MCDXXXV","CCXXXIII","CMXX","MMMCLXIV","MCCCLXXXVI","DCCCXCVIII","MMMDCCCCXXXIV","CDXVIIII","MMCCXXXV","MDCCCXXXII",
"MMMMD","MMDCCLXIX","MMMMCCCLXXXXVI","MMDCCXLII","MMMDCCCVIIII","DCCLXXXIIII","MDCCCCXXXII","MMCXXVII","DCCCXXX","CCLXIX","MMMXI","MMMMCMLXXXXVIII","MMMMDLXXXVII","MMMMDCCCLX","MMCCLIV","CMIX",
"MMDCCCLXXXIIII","CLXXXII","MMCCCCXXXXV","MMMMDLXXXVIIII","MMMDCCCXXI","MMDCCCCLXXVI","MCCCCLXX","MMCDLVIIII","MMMDCCCLIX","MMMMCCCCXIX","MMMDCCCLXXV","XXXI","CDLXXXIII","MMMCXV","MMDCCLXIII","MMDXXX",
"MMMMCCCLVII","MMMDCI","MMMMCDLXXXIIII","MMMMCCCXVI","CCCLXXXVIII","MMMMCML","MMMMXXIV","MMMCCCCXXX","DCCX","MMMCCLX","MMDXXXIII","CCCLXIII","MMDCCXIII","MMMCCCXLIV","CLXXXXI","CXVI","MMMMCXXXIII",
"CLXX","DCCCXVIII","MLXVII","DLXXXX","MMDXXI","MMMMDLXXXXVIII","MXXII","LXI","DCCCCXLIII","MMMMDV","MMMMXXXIV","MDCCCLVIII","MMMCCLXXII","MMMMDCCXXXVI","MMMMLXXXIX","MDCCCLXXXI","MMMMDCCCXV","MMMMCCCCXI",
"MMMMCCCLIII","MDCCCLXXI","MMCCCCXI","MLXV","MMCDLXII","MMMMDXXXXII","MMMMDCCCXL","MMMMCMLVI","CCLXXXIV","MMMDCCLXXXVI","MMCLII","MMMCCCCXV","MMLXXXIII","MMMV","MMMV","DCCLXII","MMDCCCCXVI","MMDCXLVIII",
"CCLIIII","CCCXXV","MMDCCLXXXVIIII","MMMMDCLXXVIII","MMMMDCCCXCI","MMMMCCCXX","MMCCXLV","MMMDCCCLXIX","MMCCLXIIII","MMMDCCCXLIX","MMMMCCCLXIX","CMLXXXXI","MCMLXXXIX","MMCDLXI","MMDCLXXVIII","MMMMDCCLXI",
"MCDXXV","DL","CCCLXXII","MXVIIII","MCCCCLXVIII","CIII","MMMDCCLXXIIII","MMMDVIII","MMMMCCCLXXXXVII","MMDXXVII","MMDCCLXXXXV","MMMMCXLVI","MMMDCCLXXXII","MMMDXXXVI","MCXXII","CLI","DCLXXXIX","MMMCLI",
"MDCLXIII","MMMMDCCXCVII","MMCCCLXXXV","MMMDCXXVIII","MMMCDLX","MMMCMLII","MMMIV","MMMMDCCCLVIII","MMMDLXXXVIII","MCXXIV","MMMMLXXVI","CLXXIX","MMMCCCCXXVIIII","DCCLXXXV","MMMDCCCVI","LI","CLXXXVI",
"MMMMCCCLXXVI","MCCCLXVI","CCXXXIX","MMDXXXXI","MMDCCCXLI","DCCCLXXXVIII","MMMMDCCCIV","MDCCCCXV","MMCMVI","MMMMCMLXXXXV","MMDCCLVI","MMMMCCXLVIII","DCCCCIIII","MMCCCCIII","MMMDCCLXXXVIIII","MDCCCLXXXXV",
"DVII","MMMV","DCXXV","MMDCCCXCV","DCVIII","MMCDLXVI","MCXXVIII","MDCCXCVIII","MMDCLX","MMMDCCLXIV","MMCDLXXVII","MMDLXXXIIII","MMMMCCCXXII","MMMDCCCXLIIII","DCCCCLXVII","MMMCLXXXXIII","MCCXV","MMMMDCXI",
"MMMMDCLXXXXV","MMMCCCLII","MMCMIX","MMDCCXXV","MMDLXXXVI","MMMMDCXXVIIII","DCCCCXXXVIIII","MMCCXXXIIII","MMDCCLXXVIII","MDCCLXVIIII","MMCCLXXXV","MMMMDCCCLXXXVIII","MMCMXCI","MDXLII","MMMMDCCXIV","MMMMLI",
"DXXXXIII","MMDCCXI","MMMMCCLXXXIII","MMMDCCCLXXIII","MDCLVII","MMCD","MCCCXXVII","MMMMDCCIIII","MMMDCCXLVI","MMMCLXXXVII","MMMCCVIIII","MCCCCLXXIX","DL","DCCCLXXVI","MMDXCI","MMMMDCCCCXXXVI","MMCII",
"MMMDCCCXXXXV","MMMCDXLV","MMDCXXXXIV","MMD","MDCCCLXXXX","MMDCXLIII","MMCCXXXII","MMDCXXXXVIIII","DCCCLXXI","MDXCVIIII","MMMMCCLXXVIII","MDCLVIIII","MMMCCCLXXXIX","MDCLXXXV","MDLVIII","MMMMCCVII",
"MMMMDCXIV","MMMCCCLXIIII","MMIIII","MMMMCCCLXXIII","CCIII","MMMCCLV","MMMDXIII","MMMCCCXC","MMMDCCCXXI","MMMMCCCCXXXII","CCCLVI","MMMCCCLXXXVI","MXVIIII","MMMCCCCXIIII","CLXVII","MMMCCLXX","CCCCLXIV",
"MMXXXXII","MMMMCCLXXXX","MXL","CCXVI","CCCCLVIIII","MMCCCII","MCCCLVIII","MMMMCCCX","MCDLXXXXIV","MDCCCXIII","MMDCCCXL","MMMMCCCXXIII","DXXXIV","CVI","MMMMDCLXXX","DCCCVII","MMCMLXIIII","MMMDCCCXXXIII",
"DCCC","MDIII","MMCCCLXVI","MMMCCCCLXXI","MMDCCCCXVIII","CCXXXVII","CCCXXV","MDCCCXII","MMMCMV","MMMMCMXV","MMMMDCXCI","DXXI","MMCCXLVIIII","MMMMCMLII","MDLXXX","MMDCLXVI","CXXI","MMMDCCCLIIII","MMMCXXI",
"MCCIII","MMDCXXXXI","CCXCII","MMMMDXXXV","MMMCCCLXV","MMMMDLXV","MMMCCCCXXXII","MMMCCCVIII","DCCCCLXXXXII","MMCLXIV","MMMMCXI","MLXXXXVII","MMMCDXXXVIII","MDXXII","MLV","MMMMDLXVI","MMMCXII","XXXIII",
"MMMMDCCCXXVI","MMMLXVIIII","MMMLX","MMMCDLXVII","MDCCCLVII","MMCXXXVII","MDCCCCXXX","MMDCCCLXIII","MMMMDCXLIX","MMMMCMXLVIII","DCCCLXXVIIII","MDCCCLIII","MMMCMLXI","MMMMCCLXI","MMDCCCLIII","MMMDCCCVI",
"MMDXXXXIX","MMCLXXXXV","MMDXXX","MMMXIII","DCLXXIX","DCCLXII","MMMMDCCLXVIII","MDCCXXXXIII","CCXXXII","MMMMDCXXV","MMMCCCXXVIII","MDCVIII","MMMCLXXXXIIII","CLXXXI","MDCCCCXXXIII","MMMMDCXXX","MMMDCXXIV",
"MMMCCXXXVII","MCCCXXXXIIII","CXVIII","MMDCCCCIV","MMMMCDLXXV","MMMDLXIV","MDXCIII","MCCLXXXI","MMMDCCCXXIV","MCXLIII","MMMDCCCI","MCCLXXX","CCXV","MMDCCLXXI","MMDLXXXIII","MMMMDCXVII","MMMCMLXV",
"MCLXVIII","MMMMCCLXXVI","MMMDCCLXVIIII","MMMMDCCCIX","DLXXXXIX","DCCCXXII","MMMMIII","MMMMCCCLXXVI","DCCCXCIII","DXXXI","MXXXIIII","CCXII","MMMDCCLXXXIIII","MMMCXX","MMMCMXXVII","DCCCXXXX","MMCDXXXVIIII",
"MMMMDCCXVIII","LV","MMMDCCCCVI","MCCCII","MMCMLXVIIII","MDCCXI","MMMMDLXVII","MMCCCCLXI","MMDCCV","MMMCCCXXXIIII","MMMMDI","MMMDCCCXCV","MMDCCLXXXXI","MMMDXXVI","MMMDCCCLVI","MMDCXXX","MCCCVII",
"MMMMCCCLXII","MMMMXXV","MMCMXXV","MMLVI","MMDXXX","MMMMCVII","MDC","MCCIII","MMMMDCC","MMCCLXXV","MMDCCCXXXXVI","MMMMCCCLXV","CDXIIII","MLXIIII","CCV","MMMCMXXXI","CCCCLXVI","MDXXXII","MMMMCCCLVIII",
"MMV","MMMCLII","MCMLI","MMDCCXX","MMMMCCCCXXXVI","MCCLXXXI","MMMCMVI","DCCXXX","MMMMCCCLXV","DCCCXI","MMMMDCCCXIV","CCCXXI","MMDLXXV","CCCCLXXXX","MCCCLXXXXII","MMDCIX","DCCXLIIII","DXIV","MMMMCLII",
"CDLXI","MMMCXXVII","MMMMDCCCCLXIII","MMMDCLIIII","MCCCCXXXXII","MMCCCLX","CCCCLIII","MDCCLXXVI","MCMXXIII","MMMMDLXXVIII","MMDCCCCLX","MMMCCCLXXXX","MMMCDXXVI","MMMDLVIII","CCCLXI","MMMMDCXXII",
"MMDCCCXXI","MMDCCXIII","MMMMCLXXXVI","MDCCCCXXVI","MDV","MMDCCCCLXXVI","MMMMCCXXXVII","MMMDCCLXXVIIII","MMMCCCCLXVII","DCCXLI","MMCLXXXVIII","MCCXXXVI","MMDCXLVIII","MMMMCXXXII","MMMMDCCLXVI","MMMMCMLI",
"MMMMCLXV","MMMMDCCCXCIV","MCCLXXVII","LXXVIIII","DCCLII","MMMCCCXCVI","MMMCLV","MMDCCCXXXXVIII","DCCCXV","MXC","MMDCCLXXXXVII","MMMMCML","MMDCCCLXXVIII","DXXI","MCCCXLI","DCLXXXXI","MMCCCLXXXXVIII",
"MDCCCCLXXVIII","MMMMDXXV","MMMDCXXXVI","MMMCMXCVII","MMXVIIII","MMMDCCLXXIV","MMMCXXV","DXXXVIII","MMMMCLXVI","MDXII","MMCCCLXX","CCLXXI","DXIV","MMMCLIII","DLII","MMMCCCXLIX","MMCCCCXXVI","MMDCXLIII",
"MXXXXII","CCCLXXXV","MDCLXXVI","MDCXII","MMMCCCLXXXIII","MMDCCCCLXXXII","MMMMCCCLXXXV","MMDCXXI","DCCCXXX","MMMDCCCCLII","MMMDCCXXII","MMMMCDXCVIII","MMMCCLXVIIII","MMXXV","MMMMCDXIX","MMMMCCCX",
"MMMCCCCLXVI","MMMMDCLXXVIIII","MMMMDCXXXXIV","MMMCMXII","MMMMXXXIII","MMMMDLXXXII","DCCCLIV","MDXVIIII","MMMCLXXXXV","CCCCXX","MMDIX","MMCMLXXXVIII","DCCXLIII","DCCLX","D","MCCCVII","MMMMCCCLXXXIII",
"MDCCCLXXIIII","MMMDCCCCLXXXVII","MMMMCCCVII","MMMDCCLXXXXVI","CDXXXIV","MCCLXVIII","MMMMDLX","MMMMDXII","MMMMCCCCLIIII","MCMLXXXXIII","MMMMDCCCIII","MMDCLXXXIII","MDCCCXXXXIV","XXXXVII","MMMDCCCXXXII",
"MMMDCCCXLII","MCXXXV","MDCXXVIIII","MMMCXXXXIIII","MMMMCDXVII","MMMDXXIII","MMMMCCCCLXI","DCLXXXXVIIII","LXXXXI","CXXXIII","MCDX","MCCLVII","MDCXXXXII","MMMCXXIV","MMMMLXXXX","MMDCCCCXLV","MLXXX",
"MMDCCCCLX","MCDLIII","MMMCCCLXVII","MMMMCCCLXXIV","MMMDCVIII","DCCCCXXIII","MMXCI","MMDCCIV","MMMMDCCCXXXIV","CCCLXXI","MCCLXXXII","MCMIII","CCXXXI","DCCXXXVIII","MMMMDCCXLVIIII","MMMMCMXXXV","DCCCLXXV",
"DCCXCI","MMMMDVII","MMMMDCCCLXVIIII","CCCXCV","MMMMDCCXX","MCCCCII","MMMCCCXC","MMMCCCII","MMDCCLXXVII","MMDCLIIII","CCXLIII","MMMDCXVIII","MMMCCCIX","MCXV","MMCCXXV","MLXXIIII","MDCCXXVI","MMMCCCXX",
"MMDLXX","MMCCCCVI","MMDCCXX","MMMMDCCCCXCV","MDCCCXXXII","MMMMDCCCCXXXX","XCIV","MMCCCCLX","MMXVII","MLXXI","MMMDXXVIII","MDCCCCII","MMMCMLVII","MMCLXXXXVIII","MDCCCCLV","MCCCCLXXIIII","MCCCLII","MCDXLVI",
"MMMMDXVIII","DCCLXXXIX","MMMDCCLXIV","MDCCCCXLIII","CLXXXXV","MMMMCCXXXVI","MMMDCCCXXI","MMMMCDLXXVII","MCDLIII","MMCCXLVI","DCCCLV","MCDLXX","DCLXXVIII","MMDCXXXIX","MMMMDCLX","MMDCCLI","MMCXXXV",
"MMMCCXII","MMMMCMLXII","MMMMCCV","MCCCCLXIX","MMMMCCIII","CLXVII","MCCCLXXXXIIII","MMMMDCVIII","MMDCCCLXI","MMLXXIX","CMLXIX","MMDCCCXLVIIII","DCLXII","MMMCCCXLVII","MDCCCXXXV","MMMMDCCXCVI","DCXXX",
"XXVI","MMLXIX","MMCXI","DCXXXVII","MMMMCCCXXXXVIII","MMMMDCLXI","MMMMDCLXXIIII","MMMMVIII","MMMMDCCCLXII","MDCXCI","MMCCCXXIIII","CCCCXXXXV","MMDCCCXXI","MCVI","MMDCCLXVIII","MMMMCXL","MLXVIII","CMXXVII",
"CCCLV","MDCCLXXXIX","MMMCCCCLXV","MMDCCLXII","MDLXVI","MMMCCCXVIII","MMMMCCLXXXI","MMCXXVII","MMDCCCLXVIII","MMMCXCII","MMMMDCLVIII","MMMMDCCCXXXXII","MMDCCCCLXXXXVI","MDCCXL","MDCCLVII","MMMMDCCCLXXXVI",
"DCCXXXIII","MMMMDCCCCLXXXV","MMCCXXXXVIII","MMMCCLXXVIII","MMMDCLXXVIII","DCCCI","MMMMLXXXXVIIII","MMMCCCCLXXII","MMCLXXXVII","CCLXVI","MCDXLIII","MMCXXVIII","MDXIV","CCCXCVIII","CLXXVIII","MMCXXXXVIIII",
"MMMDCLXXXIV","CMLVIII","MCDLIX","MMMMDCCCXXXII","MMMMDCXXXIIII","MDCXXI","MMMDCXLV","MCLXXVIII","MCDXXII","IV","MCDLXXXXIII","MMMMDCCLXV","CCLI","MMMMDCCCXXXVIII","DCLXII","MCCCLXVII","MMMMDCCCXXXVI",
"MMDCCXLI","MLXI","MMMCDLXVIII","MCCCCXCIII","XXXIII","MMMDCLXIII","MMMMDCL","DCCCXXXXIIII","MMDLVII","DXXXVII","MCCCCXXIIII","MCVII","MMMMDCCXL","MMMMCXXXXIIII","MCCCCXXIV","MMCLXVIII","MMXCIII","MDCCLXXX",
"MCCCLIIII","MMDCLXXI","MXI","MCMLIV","MMMCCIIII","DCCLXXXVIIII","MDCLIV","MMMDCXIX","CMLXXXI","DCCLXXXVII","XXV","MMMXXXVI","MDVIIII","CLXIII","MMMCDLVIIII","MMCCCCVII","MMMLXX","MXXXXII","MMMMCCCLXVIII",
"MMDCCCXXVIII","MMMMDCXXXXI","MMMMDCCCXXXXV","MMMXV","MMMMCCXVIIII","MMDCCXIIII","MMMXXVII","MDCCLVIIII","MMCXXIIII","MCCCLXXIV","DCLVIII","MMMLVII","MMMCXLV","MMXCVII","MMMCCCLXXXVII","MMMMCCXXII","DXII",
"MMMDLV","MCCCLXXVIII","MMMCLIIII","MMMMCLXXXX","MMMCLXXXIIII","MDCXXIII","MMMMCCXVI","MMMMDLXXXIII","MMMDXXXXIII","MMMMCCCCLV","MMMDLXXXI","MMMCCLXXVI","MMMMXX","MMMMDLVI","MCCCCLXXX","MMMXXII","MMXXII",
"MMDCCCCXXXI","MMMDXXV","MMMDCLXXXVIIII","MMMDLXXXXVII","MDLXIIII","CMXC","MMMXXXVIII","MDLXXXVIII","MCCCLXXVI","MMCDLIX","MMDCCCXVIII","MDCCCXXXXVI","MMMMCMIV","MMMMDCIIII","MMCCXXXV","XXXXVI","MMMMCCXVII",
"MMCCXXIV","MCMLVIIII","MLXXXIX","MMMMLXXXIX","CLXXXXIX","MMMDCCCCLVIII","MMMMCCLXXIII","MCCCC","DCCCLIX","MMMCCCLXXXII","MMMCCLXVIIII","MCLXXXV","CDLXXXVII","DCVI","MMX","MMCCXIII","MMMMDCXX","MMMMXXVIII",
"DCCCLXII","MMMMCCCXLIII","MMMMCLXV","DXCI","MMMMCLXXX","MMMDCCXXXXI","MMMMXXXXVI","DCLX","MMMCCCXI","MCCLXXX","MMCDLXXII","DCCLXXI","MMMCCCXXXVI","MCCCCLXXXVIIII","CDLVIII","DCCLVI","MMMMDCXXXVIII",
"MMCCCLXXXIII","MMMMDCCLXXV","MMMXXXVI","CCCLXXXXIX","CV","CCCCXIII","CCCCXVI","MDCCCLXXXIIII","MMDCCLXXXII","MMMMCCCCLXXXI","MXXV","MMCCCLXXVIIII","MMMCCXII","MMMMCCXXXIII","MMCCCLXXXVI","MMMDCCCLVIIII",
"MCCXXXVII","MDCLXXV","XXXV","MMDLI","MMMCCXXX","MMMMCXXXXV","CCCCLIX","MMMMDCCCLXXIII","MMCCCXVII","DCCCXVI","MMMCCCXXXXV","MDCCCCXCV","CLXXXI","MMMMDCCLXX","MMMDCCCIII","MMCLXXVII","MMMDCCXXIX",
"MMDCCCXCIIII","MMMCDXXIIII","MMMMXXVIII","MMMMDCCCCLXVIII","MDCCCXX","MMMMCDXXI","MMMMDLXXXIX","CCXVI","MDVIII","MMCCLXXI","MMMDCCCLXXI","MMMCCCLXXVI","MMCCLXI","MMMMDCCCXXXIV","DLXXXVI","MMMMDXXXII",
"MMMXXIIII","MMMMCDIV","MMMMCCCXLVIII","MMMMCXXXVIII","MMMCCCLXVI","MDCCXVIII","MMCXX","CCCLIX","MMMMDCCLXXII","MDCCCLXXV","MMMMDCCCXXIV","DCCCXXXXVIII","MMMDCCCCXXXVIIII","MMMMCCXXXV","MDCLXXXIII",
"MMCCLXXXIV","MCLXXXXIIII","DXXXXIII","MCCCXXXXVIII","MMCLXXIX","MMMMCCLXIV","MXXII","MMMCXIX","MDCXXXVII","MMDCCVI","MCLXXXXVIII","MMMCXVI","MCCCLX","MMMCDX","CCLXVIIII","MMMCCLX","MCXXVIII","LXXXII",
"MCCCCLXXXI","MMMI","MMMCCCLXIV","MMMCCCXXVIIII","CXXXVIII","MMCCCXX","MMMCCXXVIIII","MCCLXVI","MMMCCCCXXXXVI","MMDCCXCIX","MCMLXXI","MMCCLXVIII","CDLXXXXIII","MMMMDCCXXII","MMMMDCCLXXXVII","MMMDCCLIV",
"MMCCLXIII","MDXXXVII","DCCXXXIIII","MCII","MMMDCCCLXXI","MMMLXXIII","MDCCCLIII","MMXXXVIII","MDCCXVIIII","MDCCCCXXXVII","MMCCCXVI","MCMXXII","MMMCCCLVIII","MMMMDCCCXX","MCXXIII","MMMDLXI","MMMMDXXII",
"MDCCCX","MMDXCVIIII","MMMDCCCCVIII","MMMMDCCCCXXXXVI","MMDCCCXXXV","MMCXCIV","MCMLXXXXIII","MMMCCCLXXVI","MMMMDCLXXXV","CMLXIX","DCXCII","MMXXVIII","MMMMCCCXXX","XXXXVIIII"
};
int counter = 0;
for (int i=0; i<input.length; i++)
counter += ex(input[i]);
print( counter );
}
private static int ex(String input) {
int oldLength = input.length();
input = input.replace("VIIII", "IX");
input = input.replace("IIII", "IV");
input = input.replace("LXXXX", "XC");
input = input.replace("XXXX", "XL");
input = input.replace("DCCCC", "CM");
input = input.replace("CCCC", "CD");
input = input.replace("VV", "X");
input = input.replace("LL", "C");
input = input.replace("DD", "M");
input = input.replace("IIIII", "V");
input = input.replace("XXXXX", "L");
input = input.replace("CCCCC", "D");
return oldLength - input.length();
}
}