Informatica Online Judge

  아랍로마 수 [0871 / 0367]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 53   Total Tried : 58


The Champion of this Problem (C++) : gs16109 - 0ms / 196byte
My Best Submission (C++) : N/A

[]

Background

아라비아 숫자(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)와 로마 문자(I, V, X, L, C, D, M)를 조합해 만든 아랍로마수의 값을 계산해 보자.

아라비아 숫자를 A, 로마 문자를 R 이라고 할 때, 아랍로마수는 ARARAR...AR 의 형태로 구성되는 가상의 수이다. 각각의 AR 세트가 아래와 같은 값을 가진다고 할 때, 각각의 수를 더하거나 빼서 전체 아랍로마수의 값을 계산해야한다.

아라비아 숫자 A는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 의 수가 가능하고, 로마 문자 R은 7개의 문자로 다음과 같은 값을 의미한다.


로마문자 I V X L C D M
값 1 5 10 50 100 500 1000



AR의 쌍은 R의 값에 A를 곱한 값으로 계산된다. 일반적으로는 모든 쌍의 값을 계산해 더하면 되지만, ARA’R’과 같이 연속으로 작성된다고 할 때,

R’이 R보다 크다면 AR의 값을 더하는 대신 전체 값에서 빼주어야 한다.

예를 들어 3M1D2C는 3*1000+1*500+2*100=3700 이고, 3X2I4X는 2*10-2*1+4*10=68 로 계산된다.

아랍로마수의 값을 계산하는 프로그램을 작성해 보자.

Input

주어진 규칙을 만족하는 아랍로마 수가 입력된다.

[입력값의 정의역]
2 <= 문자열의 길이 <= 20

Output

입력된 아랍로마 수의 값을 10진수로 출력한다.

IO Example

입력1
3M1D2C

출력
3700

입력2
2I3I2X9V1X

출력
-16

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]