From ffc9e894856ac1a8d0c81453212dea3e2f2e67b9 Mon Sep 17 00:00:00 2001 From: itpark1018 Date: Wed, 8 May 2024 21:34:55 +0900 Subject: [PATCH] itpark1018-3 --- itpark1018/RomanToInteger.java | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 itpark1018/RomanToInteger.java diff --git a/itpark1018/RomanToInteger.java b/itpark1018/RomanToInteger.java new file mode 100644 index 0000000..6cd6db1 --- /dev/null +++ b/itpark1018/RomanToInteger.java @@ -0,0 +1,35 @@ +package itpark1018; + +import java.util.HashMap; + +public class RomanToInteger { + public int romanToInt(String s) { + + HashMap romanValues = new HashMap<>(); + romanValues.put('I', 1); + romanValues.put('V', 5); + romanValues.put('X', 10); + romanValues.put('L', 50); + romanValues.put('C', 100); + romanValues.put('D', 500); + romanValues.put('M', 1000); + + int result = 0; + int preValue = 0; + + for (int i = s.length() - 1; i >= 0 ; i--) { + + int value = romanValues.get(s.charAt(i)); + + if (value < preValue) { + result -= value; + } else { + result += value; + } + + preValue = value; + } + + return result; + } +}