시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
로마 숫자는 다음 7개의 기호로 수를 나타낸다.
| 기호 | I | V | X | L | C | D | M |
|---|---|---|---|---|---|---|---|
| 값 | 1 | 5 | 10 | 50 | 100 | 500 | 1000 |
로마 숫자는 아래 규칙을 모두 만족해야 한다.
위 규칙에 따르면 235는 CCXXXV, 1940은 MCMXL, 5493은 MMMMMCDXCIII로 쓴다.
어떤 사람들은 로마 숫자 문자열의 앞, 뒤, 또는 문자 사이에 다른 문자와 공백을 넣어 영어 문장처럼 보이게 만들었다. 문장 안에서 로마 숫자에 해당하는 글자 m, d, c, l, x, v, i를 순서대로 골라낼 수 있으면, 그 문장은 그 로마 숫자를 표현한다고 본다. 예를 들어 matt is the best school in korea에서는 M, L, I를 순서대로 골라 1051을 표현할 수 있다. 문자의 순서는 바꿀 수 없으므로 mind control은 M, L, I를 순서대로 만들 수 없다.
한 문장이 여러 수를 표현할 수도 있다. 예를 들어 matt is the best school in korea에서는 M, C, L, I를 순서대로 골라 1151을 표현할 수도 있다.
영어 문장이 주어질 때, 그 문장이 표현할 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. 어떤 양의 정수도 표현할 수 없다면 0을 출력한다.
첫째 줄에 문장의 개수 N이 주어진다. (1 ≤ N ≤ 10)
다음 N개의 줄에는 영어 문장이 한 줄에 하나씩 주어진다. 각 문장은 알파벳 소문자와 공백으로만 이루어져 있으며, 길이는 10,000을 넘지 않는다.
각 문장마다 그 문장이 표현할 수 있는 가장 큰 수를 한 줄에 하나씩 출력한다. 어떤 수로도 볼 수 없는 문장은 0을 출력한다.