만드는 중입니다

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

방향족 수

면접 대비

시간 제한2초메모리 제한512 MB

요약
아라비아 숫자와 로마 숫자가 번갈아 나오는 문자열이 주어질 때, 각 숫자와 로마 값의 곱을 더하되 다음 로마 값이 더 크면 그 항을 빼서 전체 값을 구한다.
난이도

쉬움10점 중 3점

유형
문자열, 구현, 수학
정답자
아직 제출이 없습니다

문제

방향족 수(aromatic number) 는 아라비아 숫자와 로마 숫자를 결합한 수이다. 이 수의 값을 계산하는 것이 목표이다.

방향족 수는 A1R1A2R2⋯AnRnA_1 R_1 A_2 R_2 \cdots A_n R_n 형태이며, 각 AA 는 아라비아 숫자이고 각 RR 은 로마 숫자이다. 각 쌍 ARA R 이 하나의 값을 가지며, 전체 수의 값은 이 쌍들의 값을 더하거나 빼서 구한다.

아라비아 숫자 AA 는 0,1,2,…,90, 1, 2, \ldots, 9 중 하나이다. 로마 숫자 RR 은 I, V, X, L, C, D, M 일곱 글자 중 하나이며, 각각 다음과 같은 기본값을 가진다.

기호IVXLCDM
기본값1510501005001000

쌍 ARA R 의 값은 AA 에 RR 의 기본값을 곱한 것이다. 기본적으로 모든 쌍의 값을 더한다. 다만 연속한 두 쌍 ARA R 과 A′R′A' R' 에서 R′R' 의 기본값이 RR 의 기본값보다 엄격히 클 때, 쌍 ARA R 의 값은 더하는 대신 전체에서 뺀다.

예를 들어 3M1D2C3M1D2C 의 값은 3×1000+1×500+2×100=37003 \times 1000 + 1 \times 500 + 2 \times 100 = 3700 이고, 3X2I4X3X2I4X 의 값은 3×10−2×1+4×10=683 \times 10 - 2 \times 1 + 4 \times 10 = 68 이다.

방향족 수의 값을 계산하는 프로그램을 작성하시오.

입력

2개 이상 20개 이하의 기호로 이루어진, 올바른 방향족 수 하나가 한 줄에 주어진다.

출력

주어진 방향족 수의 십진수 값을 출력한다.

예제2

  1. 예제 1

    입력
    3M1D2C
    
    예상 출력
    3700
    
  2. 예제 2

    입력
    2I3I2X9V1X
    
    예상 출력
    -16