[etc] 다트게임등


다트 게임

문제 설명

고민

  • 입력받은 문자를 쪼개 배열로 만듬
  • 배열로 만들때 10이 1,0으로 쪼개짐
  • 10을 t로 치환
  • SDT는 object로 할 수도 있는데 그냥 배열의 위치값으로 더했음..사실 object로 해야 깔끔한데.
  • num 배열을 다 더하는것으로 마무리

    내 풀이

function solution(dartResult) {
    dartResult = dartResult.replace( /10/g , 't' )
    var darts = dartResult.split('');
    var num = [];
    
    var cnt = 0;
    var index =-1;
    var bonus = ['S','D','T']
    while(true){
        if( !isNaN(  darts[cnt]  )  || darts[cnt] == 't'){
            index++;
            if( darts[cnt] == 't'){
                num[ index ] = 10;
            }else{
                num[ index ] = darts[cnt];
            }
        }else if( bonus.indexOf( darts[cnt] ) > -1  ){
            num[ index ]  = Math.pow( num[ index ] , bonus.indexOf(darts[cnt])+1 );
        }else if( darts[cnt] == '*' ){
            if( index > 0 ){
                num[ index - 1 ] = num[ index - 1 ] * 2    
                num[ index  ] = num[ index  ] * 2
            }else{
                num[ index  ] = num[ index  ] * 2
            }
        }else if( darts[cnt] == '#' ){
            num[ index  ] = num[ index  ] * -1;
        }
        
        cnt++
        if( darts.length == cnt ) break;
    };
    
    return num.reduce(function(a,b){
        return a+b;
    });
}

같은 숫자는 싫어

문제 설명

고민 없음

내풀이


function solution(arr)
{
    var pre;
    return arr.filter(function(data){
        if( data != pre ){
            pre=data; 
            return true;
        }
    });
}

두 정수의 합

문제 설명

고민 없음

내풀이

function solution(a, b) {
    var answer = 0;
    var start = a < b ? a : b;
    var stop = a > b ? a : b;
    if( a==b) return a;
    for( var i = start ; i <= stop ;i++ ){
        answer+=i;    
    }
    return answer;
}

가우스

function adder(a, b){
    return (a+b)*(Math.abs(b-a)+1)/2;
}

나누어 떨어지는 숫자 배열

문제 설명

고민 없음

내풀이


function solution(arr, divisor) {
    
    arr = arr.filter(function(data){
        if( data%divisor == 0){
            return true;
        }
    }).sort(function(a,b){
        return a-b;
    });
    return arr.length != 0 ? arr : [-1];
}


문자열 내의 P , Y 갯수

문제 설명

고민 없음

내풀이

function solution(b) {
    var befor = b.length;
    b = b.toUpperCase();
    var remove_p = befor - b.replace(/P/g,'').length;
    var remove_y = befor - b.replace(/Y/g,'').length;
    //원래 길이에서 p,y를 제거한거의 길이르 비교했는데.. 굳이 필요 없을듯
    return remove_p == remove_y
}

function solution(b) {
    b = b.toUpperCase();
    var p = b.split('P').length;
    var y = b.split('Y').length;
    // 배열의 길이로 하면 편안.
    return p == y
}






© 2017. by isme2n