자격증

2023-04-28 : javascript : Test

IC 2023. 4. 28.

01. 다음의 결괏값을 작성하시오.

{
    let i = 0;
    let sum = 0;
    
    while(i < 10){
        i = i+1;
        if( i % 4 == 0) sum -= i;
        if( i % 4 == 1) sum += i;
        if( i % 4 == 2) sum *= i 
    }

    console.log(sum) 
}

02. 다음의 결괏값을 작성하시오.

{
    let num = [10, 20, 30, 40, 50];
    let i, max, min;
    max = min = num[0];

    for(i=0; i<5; i++){
        if(num[i] > max) max = num[i];
        if(num[i] < min) min = num[i];
    }

    console.log(max, min);
}

03. 다음의 결괏값을 작성하시오.

{
    function func(begin, diff, n){
        cnt = 1;
        ret = begin;
        while(0){
            cnt += 1;
            ret *= diff;
            if(cnt == n) return ret;
        }
        return ret
    }

    console.log(func(1, 3, 4));
}

04. 다음의 결괏값을 작성하시오.

{
    let i = 0;
    let sum = 0;
    while(i < 10){
        i = i + 1;
        if(i % 2 == 0){
            continue
        }
        sum += i;
    }

    console.log(sum)
}

05. 다음의 결괏값을 작성하시오.

{
    let num = [56, 4, 3, 65, 78];
    let temp;

    for(let i=0; i<1; i++){
        for(let j=0; j<num.length-i-1; j++){
            if(num[j]>num[j+1]){
                temp = num[j];
                num[j] = num[j+1];
                num[j+1] = temp;
            }
        }
    }

    console.log(num)
}

코드를 간단하게 설명하겠습니다.

num 배열에 5개의 숫자가 있습니다.
temp 변수를 만듭니다.
두 개의 반복문이 중첩되어 있습니다.
첫 번째 반복문은 한 번만 실행됩니다.
두 번째 반복문은 4번 반복됩니다.
num[j]가 num[j+1]보다 크면, 두 숫자를 서로 바꿉니다.
바뀐 배열을 출력합니다.
현재 코드는 첫 번째 요소만 정렬합니다. 완전한 정렬을 원하면 첫 번째 반복문의 조건을 바꿔야 합니다.

결과로 [3, 4, 56, 65, 78] 배열이 출력됩니다.


06. 다음의 결괏값을 작성하시오.

{
    let num = [56, 4, 3, 65, 78];
    let min = 9999;

    for(let i=0; i<10; i++){
        if(min > num[i]){
            min = num[i];
        }
    }

    console.log(min)
}

07. 다음의 결괏값을 작성하시오.

{
    let num = [3, 4, 5, 7, 8];
    let temp;

    for(let i=0; i<=3; i++){
        for(let j=i+1; j<=4; j++){
            if(num[i] < num[j]){
                temp = num[i];
                num[i] = num[j];
                num[j] = temp;
            }
        }
    }

    console.log(num);
}

08. 다음의 결괏값을 작성하시오.

{
    let num = [1,2,3,4,5];
    let sum = 1;
    
    function func(arr){
        for(let i=0; i<arr.length; i++) {
            sum += arr[i];
        }

        for(let i=0; i<arr.length; i++){
            if(arr[i] % 2 == 0) sum -= arr[i];
        }
        return sum;            
    }

    console.log(func(num));
}

이 코드는 주어진 배열의 숫자들에 대해 다음 작업을 수행합니다.

배열의 모든 숫자들을 더합니다.
배열에서 짝수만 찾아 그 값을 빼줍니다.
최종 결과를 반환합니다.
코드를 분석해보겠습니다:

num 배열에 1, 2, 3, 4, 5 라는 숫자들이 있습니다.
sum 변수를 1로 초기화합니다.
func 함수를 정의합니다. 이 함수는 매개변수로 배열을 받습니다.
첫 번째 for 반복문에서 배열의 모든 숫자들을 sum에 더합니다.
두 번째 for 반복문에서 배열의 짝수만 찾아 그 값을 sum에서 빼줍니다.
함수는 sum 값을 반환합니다.
console.log(func(num));를 통해 함수를 호출하고 결과를 출력합니다.
이 코드를 실행하면 최종 결과로 6이 출력됩니다.


09. 다음의 결괏값을 작성하시오.

{
    let num = ["0","1","2","3","4","5","6","7","8","9"];
    let sum = 100;

    for(let i=0; i<num.length; i++){
        num[i] = i+1;
    }
    for(let i=0; i<num.length; i++){
        if(i % 3 == 1){
            sum -= num[i];
        }
    }
    console.log(sum)
}

이 코드는 주어진 문자열 배열에서 숫자를 추출하고, 특정 조건에 따라 합산한 결과를 출력합니다.

코드를 분석해보겠습니다:

num 배열에 "0"부터 "9"까지의 문자열 숫자가 있습니다.
sum 변수를 100으로 초기화합니다.
첫 번째 for 반복문에서 배열의 모든 요소를 정수로 변환하여 1부터 10까지의 숫자로 바꿉니다.
두 번째 for 반복문에서 배열의 인덱스를 3으로 나누었을 때 나머지가 1인 경우 (즉, 배열의 짝수 인덱스), 해당 숫자를 sum에서 빼줍니다.
console.log(sum)를 통해 최종 결과를 출력합니다.
이 코드를 실행하면 최종 결과로 94가 출력됩니다.


10. 다음의 결괏값을 작성하시오.

{
    let arr = [1,2,3,4,5];
    let temp = [1,2,4,6,8];
    let idx = 0;
    let flag = true;

    for(let i=0; i<arr.length; i++){
        flag = false;
        if(arr[i] == temp[i]){
            flag = true;
        }
        if(!flag){
            temp[idx] = arr[i];
            console.log(temp[idx]);
        }
    }
}

이 코드는 두 개의 배열 arr와 temp를 비교하여 같은 인덱스에 동일한 값이 없는 경우에만 temp 배열의 해당 인덱스 값을 arr 배열에서 가져오고, 그 값을 출력합니다.

코드를 분석해보겠습니다:

arr 배열에 1, 2, 3, 4, 5 라는 숫자들이 있습니다.
temp 배열에 1, 2, 4, 6, 8 라는 숫자들이 있습니다.
idx 변수를 0으로 초기화합니다.
flag 변수를 true로 초기화합니다.
for 반복문에서 arr 배열의 길이만큼 반복합니다.
flag를 false로 설정합니다.
arr의 i번째 요소와 temp의 i번째 요소가 같다면, flag를 true로 설정합니다.
flag가 false일 경우, temp의 idx번째 요소를 arr의 i번째 요소로 변경하고, 해당 값을 출력합니다.
이 코드를 실행하면 다음과 같은 결과가 출력됩니다:
3
5
이는 arr와 temp의 같은 인덱스에서 서로 다른 값들입니다.


11. 다음은 최솟값을 출력하는 예제이다. 밑줄에 적합한 표현을 작성하시오.

{
    let num = [30,40,24,80,99];
    let min = 9999;

    for(let i=0; i<5; i++){
        if(min > num[i]){
            min = ________;
        }
    }

    console.log("최소값 : ", min);
}

코드에서 빈 칸을 채우기 위해 min을 현재 반복에서의 num[i] 값으로 설정해야 합니다.


12. 다음의 결괏값을 작성하시오.

{
    let s1 = "Remember november";
    let s2 = s1.slice(0, 3) + s1.slice(12, 16);
    let s3 = "r AND you";

    console.log(s2 + s3)
}

이 코드는 두 개의 문자열을 잘라서(slice) 새로운 문자열을 만들고, 이를 출력합니다.

코드를 분석해보겠습니다:

s1에 "Remember november" 문자열이 할당되어 있습니다.
s2에 s1.slice(0, 3)과 s1.slice(12, 16)을 연결한 문자열이 할당됩니다.
s1.slice(0, 3)은 "Rem"이라는 문자열입니다.
s1.slice(12, 16)은 "nove"라는 문자열입니다.
따라서, s2에는 "Remnove"라는 문자열이 할당됩니다.
s3에 "r AND you" 문자열이 할당되어 있습니다.
console.log(s2 + s3)를 통해 s2와 s3을 연결한 문자열을 출력합니다.
이 코드를 실행하면 "Remnover AND you"라는 결과가 출력됩니다.


13. 다음의 결괏값을 작성하시오.

{
    let x = 1;

    console.log( !(x>0) );
    console.log( x>0 || x<4 );
    console.log( x<<2 );
    console.log( x&2 );
    console.log( x%3 );
}

14. 다음의 결괏값을 작성하시오.

{
    let num = 0;
    let i = 1;

    while(i<=50){
        if(i%7 == 0){
            num += i;
        }
        i++;
    }
    console.log(num)
}

15. 다음의 결괏값을 작성하시오.

{
    let result = 0;
    for(let i=1; i<999; i++){
        if(i%3==0 && i%2 !=0){
            result = i;
        }
    }
    console.log(result);
}

16. 다음의 결괏값을 작성하시오.

{
    function func(num){
        if(num <= 1){
            return 1;
        } else {
            return num + func(num - 2);
        }
    }
    function main(){
        let num = 5;
        console.log(func(num))
    }
    main();
}

17. 다음의 결괏값을 작성하시오.

{
    let a=1, b=1, num;

    for(let i=0; i<6; i++){
        num = a + b;
        a = b;
        b = num;
    }
    console.log(num)
}

18. 다음의 결괏값을 작성하시오.

{
    function func(num1, num2){
        let res = 1;
        for(let i=0; i<num2; i++){
            res *= num1;
        }
        return res;
    }
    let res = func(2, 10);

    console.log(res)
}

19. 다음의 결괏값을 작성하시오.

{
    let a = func(4);

    for(let i=0; i<a.length; i++){
        console.log(a[i]);
    }

    function func(n){
        let num = [];
        for(let i=0; i<n; i++){
            num[i] = i;
        }
        return num;
    }
}

20. 다음의 결괏값을 작성하시오.

{
    let a = 3, b = 4, c = 3, d = 5;

    if( (a == 2 | a == c) & !(c > d) & (1 == b ^ c != d) ){
        a = b + c;
        if( 7 == b ^ c != a ){
            console.log(a);
        } else {
            console.log(b);
        }
    } else {
        console.log(a + b)
    }
}

댓글