From 1dd3324901e21ef110a4caa9ac52ca7770927507 Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Sun, 1 Feb 2026 21:59:12 +0900 Subject: [PATCH] =?UTF-8?q?[20260201]=20BOJ=20/=20G5=20/=20=EB=A1=9C?= =?UTF-8?q?=EB=A7=88=20=EC=88=AB=EC=9E=90=20/=20=EC=9D=B4=EC=A4=80?= =?UTF-8?q?=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\353\247\210 \354\210\253\354\236\220.md" | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 "JHLEE325/202602/01 BOJ G5 \353\241\234\353\247\210 \354\210\253\354\236\220.md" diff --git "a/JHLEE325/202602/01 BOJ G5 \353\241\234\353\247\210 \354\210\253\354\236\220.md" "b/JHLEE325/202602/01 BOJ G5 \353\241\234\353\247\210 \354\210\253\354\236\220.md" new file mode 100644 index 00000000..417daadd --- /dev/null +++ "b/JHLEE325/202602/01 BOJ G5 \353\241\234\353\247\210 \354\210\253\354\236\220.md" @@ -0,0 +1,62 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + static Map romanMap = new HashMap<>(); + + static int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; + static String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; + + public static void main(String[] args) throws IOException { + initMap(); + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + String s1 = br.readLine(); + String s2 = br.readLine(); + + int sum = romanToArab(s1) + romanToArab(s2); + + System.out.println(sum); + System.out.println(arabToRoman(sum)); + } + + static void initMap() { + romanMap.put('I', 1); + romanMap.put('V', 5); + romanMap.put('X', 10); + romanMap.put('L', 50); + romanMap.put('C', 100); + romanMap.put('D', 500); + romanMap.put('M', 1000); + } + + static int romanToArab(String s) { + int total = 0; + for (int i = 0; i < s.length(); i++) { + int current = romanMap.get(s.charAt(i)); + + if (i + 1 < s.length() && current < romanMap.get(s.charAt(i + 1))) { + total -= current; + } else { + total += current; + } + } + return total; + } + + static String arabToRoman(int num) { + StringBuilder sb = new StringBuilder(); + int i = 0; + while (num > 0) { + if (num >= values[i]) { + sb.append(symbols[i]); + num -= values[i]; + } else { + i++; + } + } + return sb.toString(); + } +} +```