[프로그래머스] 230706 코딩테스트 연습

    SMALL

    1. 원소들의 곱과 합

    function solution(num_list) {
        var answer = 0;
        
        var multiple = 1;
        var totalSqrt = 0;
        
        for (var i=0; i<num_list.length; i++) {
            multiple *= num_list[i];
            totalSqrt += num_list[i];
        }
        
        totalSqrt *= totalSqrt;
        
        if( multiple < totalSqrt ) {
            answer = 1;
        } else if ( multiple > totalSqrt ) {
            answer = 0;
        }
        
        
        return answer;
    }

     

    2. 이어 붙인 수

    function solution(num_list) {
        var answer = 0;
        
        var odd = "";
        var even = "";
        
        for (var i = 0; i<num_list.length; i++) {
            if (num_list[i]%2 == 1) { // 홀수
                odd += num_list[i];
            } else { // 짝수
                even += num_list[i];
            }
        }
        
        odd = parseInt(odd); // 문자 > 숫자 바꾸기
        even = parseInt(even); // 문자 > 숫자 바꾸기
        
        answer = odd + even;
    
        return answer;
    }

     

    3. 마지막 두 원소

    function solution(num_list) {
        var answer = [];
        
        num_list.forEach (i=>{
            answer.push(i);
        })
        
        var length = num_list.length;
        var final = num_list[length-1];
        var postFinal = num_list[length-2];
        // 인덱스는 0부터 시작!
        
        if (final > postFinal) {
            answer.push(final-postFinal);
        } else { // (final <= postFinal)
            answer.push(final*2);
        }
        
        
        return answer;
    }

     

    4. 수 조작하기 1

    // answer와 n은 같은 기능 X
    // answer은 "최종 n의 값"을 담음.
    
    function solution(n, control) {
        var answer = 0;
        var split_control = control.split('');
        
       split_control.forEach ( i => {
            if (i == "w") {
                n += 1;
            } else if (i == "s") {
                n -= 1;
            } else if (i == "d") {
                n += 10;
            } else if (i == "a") {
                n -= 10;
            }
        })
        
        answer = n;
        
        return answer;
    }

     

    5. 수 조작하기 2

    function solution(numLog) {
        var answer = '';
        
        for ( var i = 0; i<numLog.length-1; i++) {
            if (numLog[i+1] - numLog[i] == 1) {
                answer += "w";
            } else if (numLog[i+1] - numLog[i] == -1) {
                answer += "s";
            } else if (numLog[i+1] - numLog[i] == 10) {
                answer += "d";
            } else if (numLog[i+1] - numLog[i] == -10) {
                answer += "a";
            }
            // 0 ~ 11 (12개)
        }
        
        return answer;
    }
    728x90

    댓글