만드는 중입니다

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

로마 숫자 변환

면접 대비

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

요약
T개의 입력에 대해 로마 숫자는 아라비아 숫자로, 1에서 3999 사이의 아라비아 숫자는 로마 숫자로 변환한다.
난이도

보통10점 중 4점

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

문제

아주 옛날 로마 사람들은 로마 숫자로 수를 나타냈다.

  • 1은 I (대문자 i), 5는 V, 10은 X, 50은 L, 100은 C, 500은 D, 1000은 M으로 쓴다. 그래서 2는 II, 3은 III가 된다.
  • 4를 IIII로 쓰면 같은 문자를 네 번 늘어놓아야 해서 번거롭고, 몇 개인지 세기도 어렵다. 그래서 로마 사람들은 4를 IV로 적기로 했다 (IV = 5 - 1 = 4). 즉 같은 문자를 네 번 이상 연속해서 쓰지 않는 표기법을 쓴다. 같은 방식을 계속 적용하면 9는 IX, 40은 XL, 90은 XC, 400은 CD, 900은 CM이 된다.

아라비아 숫자와 로마 숫자가 무작위로 섞여서 주어진다. 로마 숫자가 주어지면 값이 같은 아라비아 숫자를, 아라비아 숫자가 주어지면 값이 같은 로마 숫자를 구하여라. 우리가 흔히 쓰는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9를 아라비아 숫자라고 한다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다.

다음 TT개의 줄에 아라비아 숫자나 로마 숫자가 한 줄에 하나씩 주어진다. 각 수의 값은 11 이상 39993999 이하이다. 로마 숫자는 위에서 설명한 표기법을 지킨 형태로만 주어진다.

출력

각 테스트 케이스마다 한 줄에 답을 출력한다. 입력이 로마 숫자면 그 값을 아라비아 숫자로 출력하고, 입력이 아라비아 숫자면 그 값을 로마 숫자로 출력한다. 로마 숫자는 같은 문자를 네 번 이상 연속해서 쓰지 않는 표기로 출력한다. 이 조건을 지키는 표기는 값마다 하나뿐이다.

예제1

  1. 예제 1

    입력
    3
    999
    MMXVI
    MMMCLXXVIII
    
    예상 출력
    CMXCIX
    2016
    3178