출처
100/100 (나중에 혼자푼거)
숫자 + 문자 + 특수문자(선택) 형태로 계산한다.
숫자는 0~10
문자는 S,D,T
특수문자는 *,#
function solution(dartResult) {
let beforeNum = 0;
let val=0;
let answer = 0
for(let i=0;i<dartResult.length;i++)
{
if(Number(dartResult[i]) >-1 && Number(dartResult[i+1]) > -1)
{
answer += beforeNum;
beforeNum = val;
val = 10;
i++;
}
else if(Number(dartResult[i]) > -1 ){
answer += beforeNum;
beforeNum = val;
val = Number(dartResult[i]);
}
else if(dartResult[i] == 'D'){
val= Math.pow(val,2);
}
else if(dartResult[i] == 'T'){
val = Math.pow(val,3);
}
else if(dartResult[i] == '#') {
val = -val;
}
else if(dartResult[i] == '*'){
beforeNum*=2;
val*=2;
}
}
return (answer+beforeNum+val)
}
if => 10일때
else if => 그외의 숫자일때
else if => 'D'일때
else if => 'T'일때
else if => '#'일때
else if => '*'일때
마지막 return에는 처리했던 나머지 beforNum과 val을 추가한 결과를 return한다.