[LeetCode] 13. Roman to Integer (JavaScript)

nemo·2022년 5월 11일
0

문제

Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.

I : 1
V : 5
X : 10
L : 50
C : 100
D : 500
M : 1000

로마 숫자를 정수로 출력하는 프로그램을 구현하면 된다.


입력 예제

MCMXCIV


출력 예제

1994




풀이

var romanToInt = function(s) {
  let answer = 0;
  let map = new Map();
  map.set("I", 1)
    .set("V", 5)
    .set("X", 10)
    .set("L", 50)
    .set("C", 100)
    .set("D", 500)
    .set("M", 1000);

  for (let i = s.length - 1; i >= 0; i--) {    
    if (map.get(s[i]) < map.get(s[i+1])) answer -= map.get(s[i]);
    else answer += map.get(s[i]);
  }

  return answer;
};

  • 1의 자리부터 더해주어야 하기 때문에 역순으로 반복문을 돌린다.
  • i가 i+1보다 작다면 더하지 않고 빼준다.

  • Runtime: 122 ms, faster than 91.47% of JavaScript online submissions for Roman to Integer.
  • Memory Usage: 48.6 MB, less than 25.54% of JavaScript online submissions for Roman to Integer.


문제 출처
https://leetcode.com/problems/roman-to-integer/

0개의 댓글