From 3caa17b54b261326c8255ac66f605e5f8fd1c230 Mon Sep 17 00:00:00 2001 From: ackermanncedi Date: Mon, 2 Dec 2024 13:59:21 +0000 Subject: [PATCH] Add slow solution to romanToInt --- cediackermann/challenges/romanToInt/BUILD | 11 +++++++ cediackermann/challenges/romanToInt/Main.java | 11 +++++++ .../challenges/romanToInt/Solution.java | 33 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 cediackermann/challenges/romanToInt/BUILD create mode 100644 cediackermann/challenges/romanToInt/Main.java create mode 100644 cediackermann/challenges/romanToInt/Solution.java diff --git a/cediackermann/challenges/romanToInt/BUILD b/cediackermann/challenges/romanToInt/BUILD new file mode 100644 index 0000000..021fe76 --- /dev/null +++ b/cediackermann/challenges/romanToInt/BUILD @@ -0,0 +1,11 @@ +load("@rules_java//java:defs.bzl", "java_binary") + +package(default_visibility = ["//visibility:public"]) + +java_binary( + name = "romanToInt", + main_class = "cediackermann.challenges.houseRobber.Main", + srcs = glob(["*.java"]), + deps = [ + ], +) diff --git a/cediackermann/challenges/romanToInt/Main.java b/cediackermann/challenges/romanToInt/Main.java new file mode 100644 index 0000000..03fa926 --- /dev/null +++ b/cediackermann/challenges/romanToInt/Main.java @@ -0,0 +1,11 @@ +package cediackermann.challenges.romanToInt; + +public class Main { + public static void main(String[] args) { + Solution sol = new Solution(); + System.out.println( + sol.romanToInt("MCMXCIV") + ); + } + +} diff --git a/cediackermann/challenges/romanToInt/Solution.java b/cediackermann/challenges/romanToInt/Solution.java new file mode 100644 index 0000000..2007ccc --- /dev/null +++ b/cediackermann/challenges/romanToInt/Solution.java @@ -0,0 +1,33 @@ +package cediackermann.challenges.romanToInt; + +import java.util.HashMap; +import java.util.Map; + +class Solution { + private final Map romanLetters = new HashMap<>(); + public Solution(){ + romanLetters.put("I", 1); + romanLetters.put("V", 5); + romanLetters.put("X", 10); + romanLetters.put("L", 50); + romanLetters.put("C", 100); + romanLetters.put("D", 500); + romanLetters.put("M", 1000); + } + public int romanToInt(String s) { + int solution = 0; + for (int i = 0; i < s.length(); i++) { + if (i + 1 <= s.length() - 1) { + if (this.romanLetters.get(Character.toString(s.charAt(i))) < this.romanLetters.get(Character.toString(s.charAt(i + 1)))) { + solution += this.romanLetters.get(Character.toString(s.charAt(i+1))) - this.romanLetters.get(Character.toString(s.charAt(i))); + i++; + } else{ + solution += this.romanLetters.get(Character.toString(s.charAt(i))); + } + } else{ + solution += this.romanLetters.get(Character.toString(s.charAt(i))); + } + } + return solution; + } +}