라라리라

2023.08.21 / Step 10 [함수] - 코딩 33 일차 본문

코딩/2023 JavaScript Console

2023.08.21 / Step 10 [함수] - 코딩 33 일차

헤실 2023. 8. 21. 20:16

함수3_개념01_리턴.html

 

<script>

    /*
        [개념] 함수리턴
            함수는 return 키워드를 통해서
            함수 내부의 값을 밖으로 전달할 수 있다.
    */

    function test(){
        let a = 10;
        return a;
    }

    let a = test();
    document.write(a);

</script>

 

 


함수3_개념02_배열맥스.html

 

<script>

    /*
        [문제]
            배열에 가장 큰 수를
            반환해주는 함수를 만드시오.
        [정답]
            1243
    */

    function arrmax (arr){
        let max = 0;
        for(let i = 0; i < arr.length; i++){
        if(max < arr[i]){
            max = arr[i];
        }
        }
        return max;
    }

    let arr = [112, 343, 65, 2, 1243, 3];
    let max = arrmax(arr);
    document.write(max + "<br>");
   
</script>

 

 


함수3_개념03_배열중복확인함수.html

 

<script>

    /*
        [문제]
            배열과 어떤 수를 매개변수로 사용하여
            그 어떤 수가 배열 안에 있는지 검사해,
            그 값이 있으면 true,
            없으면 false를 반환하는 함수를 만드시오.
        [예시]
            1,5,3,2,4
    */

    function checkNum (arr, num){
        let check = false;
        for(let i = 0; i < arr.length; i++){
            if(arr[i] == num) {
            check = true;
            break;
            }    
        }
        return check;
    }
   
    let arr = [];
    let i = 0;
    while(true){
        let r = Math.floor(Math.random() * 5) + 1;
        if(checkNum(arr, r) == false){
            arr.push(r);
            i++;
        }
        if(i == 5) break;
    }
    document.write("arr = " + arr + "<br>");
   

</script>

 

 


함수3_문제1_랜덤이차원배열.html

 

<script>

    /*
        [문제]
            이차원배열의 세로와 가로를 저장하면,
            그 숫자만큼 랜덤으로 숫자를 넣어서
            이차원 배열로 반환해주는 함수를 만드시오.
        [예시]
            4, 3

            1 2 3
            4 5 6
            7 8 9
            10 11 12            
    */

    function result (y, x){
    let num = 1;
    let rs = [];
    for(let i = 0; i < y; i++){
        let temp = [];
        for(let j = 0; j < x; j++){
            temp.push(num);
            num++;
        }
        rs.push(temp);
    }
        return rs;
    }

    let r1 = Math.floor(Math.random() * 5) + 1;
    let r2 = Math.floor(Math.random() * 5) + 1;

    let rs = result(r1, r2);
    for(let i = 0; i < rs.length; i++){
        document.write(rs[i] + "<br>");
    }

   

</script>

 

 


함수3_문제2_이차원배열맥스.html

 

<script>

    /*
        [문제]
            이차원 배열에서 가장 큰 수를
            반환하는 함수를 만드시오.
        [정답]
            455
    */

    function lex (darr){
        let max = 0;
        for(let i = 0; i < darr.length; i++){
            for(let j = 0; j < darr[i].length; j++){
            if(max < darr[i][j]) max = darr[i][j];
            }
        }
        return max;
    }

    let darr = [
        [ 1, 43,   3, 54,  1],
        [45, 41, 455,  4,  6],
        [ 5, 21,  51, 32, 13]
    ];

    let result = lex(darr);
    document.write(result + "<br>");
   
</script>

 

 


함수3_문제3_이차원배열중복확인함수.html

 

<script>

    /*
        [문제]
            이차원 배열과 어떤 수를 매개변수로 사용하여
            그 어떤수가 배열 안에 있는지 검사해,
            그 값이 있으면 true,
            없으면 false를 반환하는 함수를 만드시오.
        [정답]
            true
    */

    function checkNum (arr, num){
        let check = false;
        for(let i = 0; i < arr.length; i++){
            for(let j = 0; j < arr[i].length; j++){
                if(arr[i][j] == num) {
                    check = true;
                    break;
                }
            }
        }
        return check;
    }

    let arr = [
        [ 8, 10,  4],
        [22, 87, 11],
        [52,  6, 90]
    ];

    let num = 87;

    let answer = checkNum(arr, num);
    document.write(answer + "<br>");
</script>

 

 


함수3_문제4_교집합함수.html

 

<script>

    /*
        [문제]
            arr1배열과 arr2배열을 매개변수로 받아서
            서로 겹치는 값만 배열로 만들어서
            반환해주는 함수를 만드시오.
        [정답]
            12, 43
    */

    function rs (arr1, arr2){
        let temp = [];
        for(let i = 0; i < arr1.length; i++){
            let check = false;
            for(let j = 0; j < arr2.length; j++){
                if(arr1[i] == arr2[j]){
                check = true;
                break;
                }
            }
        if(check) temp.push(arr1[i]);
        }
    return temp;
    }
   
    let arr1 = [12, 32, 33, 43, 65];
    let arr2 = [21, 12, 43, 2, 4, 5];

    let answer = rs(arr1, arr2);
    document.write(answer + "<br>");


</script>

 

 


함수3_문제5_차집합함수.html

 

<script>

    /*
        [문제]
            arr1배열과 arr2배열을 매개변수로 받아서
            서로 겹치지않는 값만 배열로 만들어서
            반환해주는 함수를 만드시오.
        [정답]
            32,33,65,21,2,4,5
    */
    function ali (arr1, arr2){
        let temp = [];
        for(let i = 0; i < arr1.length; i++){
            let check = false;
            for(let j = 0; j < arr2.length; j++){
                if(arr1[i] == arr2[j]){
                    check = true;
                    break;
                }
            }
            if(check == false) temp.push(arr1[i]);
        }
        for(let i = 0; i < arr2.length; i++){
            let check = false;
            for(let j = 0; j < arr1.length; j++){
                if(arr2[i] == arr1[j]){
                    check = true;
                    break;
                }
            }
            if(check == false) temp.push(arr2[i]);
        }
        return temp;
    }

    let arr1 = [12, 32, 33, 43, 65];
    let arr2 = [21, 12, 43, 2, 4, 5];
    let answer = ali(arr1, arr2);
    document.write("answer = " + answer + "<br>");

</script>