https://programmers.co.kr/learn/courses/30/lessons/17682
//풀이참고
function solution(dartResult) {
var resultArr = dartResult.match(/\d{1,2}[SDT]{1}[*|#]?/g ); // ***3개로 나누기
var score = [];
var answer = 0;
for(var i=0; i<3; i++){
var num = resultArr[i].match(/\d{1,2}/g);
var bonus = resultArr[i].match(/[SDT]{1}/g);
var option = resultArr[i].match(/[*|#]/g);
if(bonus == "S"){
num = parseInt(num);
} else if(bonus == "D"){
num = num * num;
} else if(bonus == "T"){
num = num * num * num;
}
if(option == "*"){
num = num * 2;
if(i != 0){
score[i-1] = score[i-1] * 2;
}
} else if(option == "#"){
num = num * (-1);
}
score.push(num);
}
answer = score.reduce((a,b) => a+b);
return answer;
}
난이도 (하)라고는 하는데 너무 오래걸림. => 정규식***, array의 곱셈, parseInt 사용시 유형 변화 등등..
다른 방법으로도 풀어볼것 (문자열 끊어서!)