본문 바로가기
Beakjoon&프로그래머스/Java

[LeetCode/Java] 13. Roman to Integer

by 현장 2025. 11. 18.

-Code

class Solution {
    public int romanToInt(String s) {
        Map<Character, Integer> roman = Map.of(
                'I', 1, 'V', 5, 'X', 10, 'L', 50, 'C', 100,
                'D', 500, 'M', 1000
        );
		
        int answer = 0;
        // 감산시 사용할 변수
        int prev = 0;

        for (int i = s.length() - 1; i >= 0; i--) {
            int now = roman.get(s.charAt(i));
            // 이전 값보다 작으면 빼고 크거나 같으면 더하기
            answer += prev <= now ? now : -now;
            prev = now;
        }

        return answer;
    }
}

감산 부분을 생각을 못해서 처음에 틀렸었습니다.