만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

로마 숫자 변환

시간 제한1초메모리 제한1024 MB

요약
각 로마 숫자 문자열을 정수로 바꿉니다. 큰 숫자 왼쪽에 있는 모든 기호는 값을 뺍니다.
난이도

쉬움10점 중 3점

유형
문자열, 시뮬레이션
정답자
아직 제출이 없습니다

문제

로마 숫자는 고대 로마에서 시작되어 중세 후기까지 유럽 전역에서 널리 쓰였다. 아라비아 숫자와 달리 라틴 알파벳 글자를 조합해 수를 나타내며, 각 글자는 고정된 정수 값을 가진다. 시대마다 많은 글자가 쓰여 자주 혼동이 있었다. 하지만 현대 방식은 다음 일곱 글자만 사용한다.

IVXLCDM
1510501005001000

많은 사람이 로마 숫자가 보편적인 뺄셈 문법을 따른다고 오해한다. 뺄셈 문법에서는 더 큰 숫자 앞에 놓인 작은 숫자를 큰 숫자에서 뺀다. 4는 IIII 또는 IV (5−1)(5-1)로 쓸 수 있다. 로마인은 뺄셈 문법을 주로 작은 수에만 사용했다. 큰 수에서는 명확성을 위해 대체로 피했다. 예를 들어 499499는 LDVLIV, XDIX, VDIV, ID로 쓸 수 있지만, 오래된 자료는 아마 CDXCIX로 썼을 것이다. 로마 숫자는 재미있지 않은가?

이 문제에서는 더 큰 숫자의 왼쪽에 있는 작은 숫자를, 서로 바로 붙어 있지 않더라도 모두 뺀다.

입력

입력의 첫 줄에는 정수 0<n≤1030 < n \leq 10^3이 주어진다. 이어서 nn개의 줄이 주어지며, 각 줄에는 최대 3⋅1053 \cdot 10^5개의 로마 숫자 글자가 있다. 입력에 등장하는 로마 숫자 글자의 총 개수는 최대 3⋅1053 \cdot 10^5이다.

출력

각 로마 숫자에 대응하는 아라비아 숫자를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    5
    CDXCIX
    ID
    IV
    IIIIV
    IIIIIIV
    
    예상 출력
    499
    499
    4
    1
    -1