
-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;
}
}
감산 부분을 생각을 못해서 처음에 틀렸었습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 10426번 기념일 2 (0) | 2025.11.18 |
|---|---|
| [LeetCode/Java] 14. Longest Common Prefix (0) | 2025.11.18 |
| [백준/Java] 34619번 소대 배정 (0) | 2025.11.17 |
| [백준/Java] 33488번 아름다운 수열 (0) | 2025.11.16 |
| [백준/Java] 34723번 피막치 (0) | 2025.11.15 |