function solution(dartResult) {
var bonus = new Map([
['S',1],
['D',2],
['T',3]
]);
var option = new Map([
['*', 2],
['#', -1],
]);
var reg = new RegExp(/\d*[SDT][*#]*/,'g');
var list = dartResult.match(reg);
var score = new Map();
var index = 0;
for (const data of list)
{
var num = parseInt(data.match(/\d+/g));
var bo = data.match(/[SDT]/g).toString();
//string의 경우 toString을통해 arr => string으로 변환해주어야 한다.
score.set(index, num ** bonus.get(bo));
var op = data.match(/[*#]/g);
if (op !== null)
{
op = op.toString();
if (op === '*' && index >= 1)
{
score.set(index - 1, score.get(index-1) * 2);
}
score.set(index, score.get(index) * option.get(op));
}
index += 1
}
var answer = 0
for (var i =0; i<3; i++)
{
answer += score.get(i);
}
return answer;
}