프로그래머스 #JS - [1차] 다트 게임

SSO·2020년 1월 17일
0

프로그래머스Lv1

목록 보기
39/47

문제

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 사용시 유형 변화 등등..

다른 방법으로도 풀어볼것 (문자열 끊어서!)

참고사항

profile
happy

0개의 댓글