WEB/STUDY_note

[javascript] 오답노트

aimee418 2023. 4. 23. 14:42

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
반응형

01.

{
    let i = 0;
    let sum = 0;
    
    while(i < 10){
        i = i+1;
        if( i % 3 == 0) sum -= i;
        if( i % 3 == 1) sum += i;
        if( i % 3 == 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(true){
            cnt += 1;
            ret *= diff;
            if(cnt == n) return ret;
        }
    }

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

해당 코드는 func 라는 함수를 정의합니다. 이 함수는 begin, diff, n이라는 3개의 인수를 받습니다.

함수는 cnt와 ret 변수를 각각 1과 begin으로 초기화합니다. 그리고 무한루프에 진입합니다.

각 루프 반복에서, cnt 변수는 1 증가하고 ret은 diff 만큼 곱해집니다. 만약 cnt가 n과 같아지면, ret 값을 반환합니다.

마지막으로, console.log 문은 func(1, 3, 4) 함수를 호출합니다. 이는 공비가 3인 등비수열에서 1번째 항이 1인 수열에서 4번째 항을 구하는 것입니다. 따라서, 1, 3, 9, 27, ... 과 같은 수열에서 4번째 항은 27 입니다.

따라서, 위 코드의 출력은 27이 됩니다.

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)
}

 

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));
}

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)
}

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]);
        }
    }
}

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);
}

12.

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

    console.log(s2 + s3)
}

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();
}

🏴. 정답 . 7

 

🏁. 해설

17.

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

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

🏴. 정답 . 7

 

🏁. 해설

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;
    }
}

🏴. 정답 . 

0

1

2

3

🏁. 해설

01. func함수 정의 : 'func'함수는 정수 'n'을 받아서 0부터 n-1까지의 값을 갖는 배열을 만들고 , 이를 반환.

02. 변수 a 선언 및 초기화 : func(4)'의 반환값,  [0,1,2,3]이 a변수에 할당

03. for루프 실행 ->a 배열의 길이만큼 반복하면서 각 원소 출력

 

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)
    }
}

 

🏴. 정답 . 7

 

🏁. 해설

01. 변수선언과 초기화 : a,b,c,d=> 3,4,3,5

02. 조건식평가 : 아래 세 개의 조건식이 모두 참이면 if문 안의 코드 블록이 실행

  • a == 2 | a == c : a가 2와 같거나 c와 같으면 참
  • !(c > d) : c가 d보다 크지 않으면 참
  • 1 == b ^ c != d : b XOR c가 1이고, c가 d와 같지 않으면 참

03. 변수값변경 : if문 안에서 a값을 b와 c의 합으로 변경

04. 중첩조건문 실행 :아래 조건식이 참이면 console.log(a)가 실행. 그렇지 않으면 console.log(b)가 실행

  • 7 == b ^ c != a : b XOR c가 7이고, c가 a와 같지 않으면 참

 

 

if문의 조건식
  • | : 비트 OR 연산자
  • ! : 논리 NOT 연산자
  • ^ : 비트 XOR 연산자(둘중 하나)