문제1301--10주년 기념 카드 준비

1301: 10주년 기념 카드 준비

시간제한 : 1.000 sec  메모리제한 : 128 MB

문제 설명

한기대 마스코트 코룡이

한기대 마스코트 코룡이

코룡이는 대회 10주년을 기념하여 대회 참가자에게 나눠줄 기념 카드를 준비하기로 했습니다.

카드는 학교 창고에 다음과 같이 보관되어 있습니다.

  • 카드에는 로마 숫자(예: I, IV, V, X, ...)가 적혀있습니다.
  • 한 장 이상의 카드가 상자로 포장되어 있으며, 창고에는 최소 한 개 이상의 카드 상자가 보관되어 있습니다.
  • 상자에는 아라비아 숫자가 적혀 있으며, 이 아라비아 숫자를 로마 숫자로 바꾸면 상자에 담긴 카드를 알 수 있습니다.
코룡이는 로마 숫자로 X가 적힌 카드가 창고에 몇 개 보관되어 있는지 알고 싶습니다.
모든 상자에 적힌 아라비아 숫자를 각각 로마 숫자로 변환하여 X가 적힌 카드의 개수를 세어봅시다.

아라비아 숫자를 로마 숫자로 만드는 법

로마 숫자는 아래 표와 같이 아라비아 숫자로 대응됩니다.
로마 숫자 아라비아 숫자
I 1
IV 4
V 5
IX 9
X 10
XL 40
L 50
XC 90
C 100
CD 400
D 500
CM 900
M 1000

<표. 로마 숫자와 아라비아 숫자>

예를 들어 상자에 15라는 숫자가 적혀있을 때, 위의 표의 숫자 중, 15를 뺄 수 있는 가장 큰 숫자는 10으로 이는 곧 X를 의미합니다.
또한 10을 뺀 나머지 숫자인 5는 위의 표에서 V를 의미합니다.
그래서 15는 XV로 표현할 수 있으며, 15가 적힌 상자에는 카드 X 1장과 V 1장이 담겨있다는 것을 알 수 있습니다.
이와 같이 임의의 아라비아 숫자가 주어졌을 때, 음수가 되지 않으면서 뺄 수 있는 가장 큰 로마 숫자들을 반복적으로 빼면 아라비아 숫자를 로마 숫자로 변환하여 카드의 종류를 알 수 있습니다.
여기서 주의할 점은 카드의 개수를 셀 때, XL, XC, IX는 X와 다른 문자로 보고 카드 개수에 포함하지 않는다는 것입니다.

예시 1

상자에 적힌 숫자가 21의 경우,
21 - 10 (X)
11 - 10 (X)
1 - 1 (I)
이므로 이 상자에는 카드 X가 2장, I가 1장 들어있다는 것을 알 수 있습니다.

예시 2

상자에 적힌 숫자가 3901의 경우,
3901 - 1000 (M)
2901 - 1000 (M)
1901 - 1000 (M)
901 - 900 (CM)
1 - 1 (I)
이므로 MMMCMI로 변환할 수 있으며, 3901이 적힌 상자에는 카드 X가 존재하지 않으며, 카드 M 3장, CM 1장, I 1장이 담겨있다는 것을 알 수 있습니다.

입력 설명

첫 줄에는 테스트 케이스 T( T  102)가 주어집니다.
다음 줄부터 각 테스트 케이스에 대한 정보가 주어집니다.
줄에는 상자 개수 B(1  3999)가 주어집니다.
그리고 다음 줄부터 상자 개수 B만큼의 아라비아 숫자 N(1  N  3999)이 공백 문자로 구분되어 주어집니다.

출력 설명

각 테스트 케이스 별로 상자에 들어있는 카드 X의 개수의 총합을 출력합니다.
단, IX, XL XC처럼 두 개의 알파벳으로 구성된 로마 숫자는 X가 문자열에 포함되어 있어도 X가 아니라는 점에 유의합니다.

입력 예시 Copy

2
5
10 15 20 40 3901
1
80

출력 예시 Copy

4
3

출처/분류