Algorithm/Javascript

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

보라해바라기 2023. 7. 6. 15:01
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