라라리라

2023.07.30 / Step 5 [배열] - 코딩 11 일차 본문

코딩/2023 JavaScript Console

2023.07.30 / Step 5 [배열] - 코딩 11 일차

헤실 2023. 7. 30. 23:23

배열1_개념01_배열선언과길이.html

 

<script>

    /*
        [배열]
            기존의 변수는 한 개의 값만 저장할 수 있지만,
            배열은 여러 값을 묶음으로 저장할 수 있다.
        [배열 선언]
            let 변수명 = [값1, 값2, 값3, ...];
            위와 같이 선언하면 여러개의 값을 하나의 묶음으로 변수에 저장할 수 있다.
            각각의 값을 사용하기 위해서는 방번호(index)를 사용해 접근한다.
            방번호(index)는 0부터 1씩 증가한다.
        [배열 길이]
            변수명.length
            배열 안에 저장되어 있는 값의 개수는 length 명령어를 통해 얻을 수 있고,
            이를 보통 배열의 길이라고 부른다.
    */

   

    let arr = [10, 20 ,30];
    console.log(arr);
    console.log(arr[0]);
    console.log(arr[1]);
    console.log(arr[2]);
    console.log("배열의 길이 = " + arr.length);

    document.write(arr + "<br>");
    document.write(arr[0] + "<br>");
    document.write(arr[1] + "<br>");
    document.write(arr[2] + "<br>");
    document.write("배열의 길이 = " + arr.length + "<br>");

    for(let a = 0; a <arr.length; a++){
        console.log(arr[a]);
        document.write(arr[a]+"<br>");
    }

</script>

 


배열1_개념02_배열값변경.html

 

<script>


/*
        [배열의 값 변경]
            이미 생성된 배열의 값을
            각각의 방번호(index)를 통해 변경할 수 있다.
    */
   let arr = [10, 20, 30];

   console.log(arr[0]);
   console.log(arr[1]);
   console.log(arr[2]);
    document.write("변경전 = ")
   document.write(arr[0] + " ");
   document.write(arr[1] + " ");
   document.write(arr[2] + " ");

   arr[1] = 100;
   document.write("변경후 = ")
   document.write(arr[0] + " ");
   document.write(arr[1] + " ");
   document.write(arr[2] + " ");

   
   
   

</script>

 


배열1_개념03_배열추가.html

 

<script>

 /*
        빈 배열을 생성하고 인덱스에 차례대로 값을 저장하면,
        배열의 크기는 자동으로 늘어난다.
    */

    let a = [];
    a[0] = 10;
    a[1] = 20;
    a[2] = 30;
    console.log(a);
    document.write(a+"<br>");

    let b = []
    b[5] = 100
    console.log(b);
    document.write(b+"<br>");



</script>

 


배열1_개념04_배열비교.html

 

<script>
/*
        [문제]
            a 와 b 를 각각 비교해서 더 큰 값을 출력한다.
            서로 같으면 둘 다 출력한다.
        [정답]
            b :  54
            a :  43
            a :  23
            a :  12, b : 12
            a :  53    
    */
    let a = [10, 43, 23, 12, 53];
    let b = [54, 6, 4, 12, 50];

    for(let count =0; count<5; count++){
        if(a[count] == b[count]){
            document.write("a : " + a[count] +", b : " + b[count] +"<br>");
        } else if (a[count] > b[count]){
            document.write("a : " + a[count] + "<br>");
        } else {
            document.write("b : " + b[count] + "<br>");
        }
    }


</script>

 


배열1_개념05_전체합.html

 

<script>

    /*
             [문제] 아래 배열의 전체 합을 출력하시오.
             [결과] 150    
    */

    let arr = [10, 20, 30, 40, 50];
    let total = 0;

    for(let a = 0; a < arr.length; a++){
        total += arr[a]
    }
    document.write(total);

</script>

 


배열1_개념06_배수.html

 

<script>
 /*
            [문제] 아래 배열의 값 중에 4의 배수만 출력하시오.
            [정답] 20 40    
    */
    let arr = [10, 20, 30, 40, 50];

    for(let a = 0; a < arr.length; a++){
        if(arr[a] % 4 == 0){
            document.write(arr[a] + " ");
        }
    }

</script>

 


배열1_개념07_백의자리.html

 

<script>


/*
        [문제]
            a배열에서 백의 자리가 2인 수만 출력하시오.
        [정답]
            1210
            1212    
    */

    let a = [1210, 1343, 1524, 1212, 7452];

    for(let x = 0; x <= a.length; x++){
        if(parseInt(a[x] % 1000 / 100) == 2 ){
            document.write(a[x]+ " ");
        }
    }

</script>

 


배열1_개념08_십의자리.html

 

<script>


 /*
        [문제]
            a배열에서 십의 자리가 2인 수만 출력하시오.
        [정답]
            423
            124
            23
            122    
    */

    let a = [510, 423, 124, 512, 252, 23, 312, 453, 122];


    for(let b=0; b <a.length; b++){
        if(parseInt(a[b] % 100 / 10) == 2){
            document.write(a[b] + "<br>");
        }
    }

</script>

 


배열1_문제01_배열비교.html

 

<script>

    /*
        [문제]
            a 와 b 를 각각 비교해서 더 큰 값을 출력한다.
            서로 같으면 둘 다 출력한다.
        [정답]
            54
            43
            23
            12 12
            53    
    */

    let a = [10, 43, 23, 12, 53];
    let b = [54, 6, 4, 12, 50];



  for(let i = 0 ; i < a.length; i++){
    for(let j = i; j< i+1; j++){
        if(a[i] > b[j]){
            document.write(a[i]);
        }
        else if(a[i] < b[j]){
            document.write(b[j]);
        } else {
            document.write(a[i] + " " + b[j]);
        }
    }
    document.write("<br>")
  }

</script>

 


배열1_문제02_배열합.html

 

<script>

    /*
        [문제]
            a 와 b 의 각 자리의 합을 total에 저장하시오.
        [정답]
            [64, 49, 27, 24, 103]    
    */

    let a = [10, 43, 23, 12, 53];
    let b = [54,  6,  4, 12, 50];
   
    let total = [0, 0, 0, 0, 0];


    for(let i = 0; i < a.length ; i++){
        total[i] = a[i] + b[i];
    }
    document.write(total)
</script>

 


배열1_문제03_배수.html

 

<script>

    /*
        [문제]
            a배열에서 3의 배수만 출력하시오.
        [정답]
            24
            12    
    */

    let a = [10, 43, 24, 12, 52];

    for(let i = 0; i < a.length; i++){
        if(a[i] % 3 == 0){
            document.write(a[i] + " ")
        }
    }
</script>

 


배열1_문제04_백의자리.html

 

<script>

    /*
        [문제]
            a배열에서 백의자리가 2인 수만 출력하시오.
        [정답]
            1210
            1212    
    */
   
    let a = [1210, 1343, 1524, 1212, 7452];

    for(let i = 0; i < a.length; i++){
        let 백의자리 = parseInt(a[i] % 1000 / 100);
        if(백의자리 == 2){
            document.write(a[i] + " ");
        }
    }

</script>

 


배열1_문제05_십의자리1.html

 

<script>

    /*
        [문제]
            a배열에서 십의 자리가 2인 수만 출력하시오.
        [정답]
            423
            124
            23
            122  
    */
   
    let a = [510, 423, 124, 512, 252, 23, 312, 453, 122];

    for(let i = 0; i < a.length; i++){
        let 십의자리 = parseInt(a[i] % 100 / 10);
        if(십의자리 == 2){
            document.write(a[i] + " ");
        }
    }

</script>

 


배열1_문제06_십의자리2.html

 

<script>

    /*
        [문제]
            a배열에서 십의 자리가 2이거나 백의 자리가 5인 수만 출력하시오.
        [정답]
            510
            423
            124
            512
            23
            122  
    */

    let a = [510, 423, 124, 512, 252, 23, 312, 453, 122];

    for(let i = 0 ; i < a.length; i++){
        let 십의자리 = parseInt(a[i] % 100 / 10);
        let 백의자리 = parseInt(a[i] % 1000/ 100);
        if(십의자리 == 2 || 백의자리 == 5){
            document.write(a[i] + "<br>")
        }
    }


</script>

 


배열1_문제07_십의자리3.html

 

<script>

    /*
        [문제]
            a배열에서 십의 자리가 1이고, 백의 자리가 5인 수만 출력하시오.
        [정답]
            510
            512    
    */

    let a = [510, 423, 124, 512, 252, 23, 312, 453, 122];


    for(let i = 0; i < a.length; i++){
        let 십의자리 = parseInt(a[i] % 100 / 10);
        let 백의자리 = parseInt(a[i] % 1000 / 100);
        if(십의자리 == 1 && 백의자리 == 5){
            document.write(a[i] + "<br>")
        }
    }
</script>

 


배열1_문제08_일의자리.html

 

<script>

    /*
        [문제]
            a배열에서 일의자리가 2인 수만 출력하시오.
        [정답]
            12
            52    
    */

    let a = [10, 43, 24, 12, 52];


    for(let i = 0; i < a.length ; i++){
        let 일의자리 = a[i] % 10;

        if(일의자리 == 2){
            document.write(a[i] + "<br>");
        }
    }
</script>

 


배열2_개념01_배열추가.html

 

<script>

    /*
        [개념]
            배열 값 추가하는 두 가지 방법
            (1) 인덱스로 접근해 추가
            (2) push 함수를 이용해 추가
                1) 사용법 : push(추가할값)
                2) 배열의 맨 뒤에 값 추가
    */

    let arr = [];

    // 10 추가하기
    arr[0] = 10;
    document.write(arr + "<br>");

    // 20 추가하기
    arr.push(20);
    document.write(arr + "<br>");

    arr.push(30);
    document.write(arr + "<br>");

</script>

 


배열2_개념02_배열랜덤.html

 

<script>
  /*
        [문제]
            a배열과 b배열에 랜덤 숫자(1~10)을 다섯 개씩 저장하고,
            둘 다 출력하시오.
        [예시]    
            a = 1,9,7,8,1
            b = 1,5,8,4,1
    */

    let a = []
    let b = []

    for(let c = 0; c < 5; c++){
        a[c]= Math.floor(Math.random() * 10 +1);
        b[c]= Math.floor(Math.random() * 10 +1);

       
    }
    document.write("a = " + a + "<br>b = " + b)




</script>

 


배열2_개념03_배열비교.html

 

<script>

 /*
        [문제]
            a배열과 b배열에 랜덤 숫자(1~10)을 다섯 개씩 저장하고,
            a와 b의 값을 각각 비교해서 더 큰 값을 출력하시오.
            단, 서로 같으면 둘 다 출력하시오.
        [예시]    
            a = 1,1,9,2,5
            b = 2,7,5,2,5
           
            b : 2
            b : 7
            a : 9
            a : 2, b : 2
            a : 5, b : 5
    */

    let a = [];
    let b = [];

    for(let c = 0; c < 5; c++){
        a[c] = Math.floor(Math.random() * 10 + 1);
        b[c] = Math.floor(Math.random() * 10 + 1);

        if(a[c] == b[c]){
            document.write(" a : " + a[c] + " b : " + b[c] +"<br>");
        } else if (a[c] > b[c]){
            document.write("a : " + a[c]+"<br>") ;
        } else {
            document.write("b : " + b[c]+"<br>");
        }
       
    }
    document.write("a = " + a +"<br>b = " + b);

</script>

 


배열2_개념04_배열합.html

 

<script>

/*
        [문제]
            랜덤숫자(1~10)을 각각 다섯개씩
            a배열과 b배열에 저장한 후,
            a배열과 b배열의 각 자리의 합을 total배열에 추가하시오.
        [예시]
            a     =  6,10, 9,1,2
            b     =  9,10, 6,5,3
            total = 15,20,15,6,5        
    */
    let a = [];
    let b = [];
    let total = [];


    for(let c = 0; c < 5; c++){
        a[c] = Math.floor(Math.random() * 10 + 1);
        b[c] = Math.floor(Math.random() * 10 + 1);

        total[c] = a[c] + b[c];

    }
    document.write("a = " + a + "<br>b = " + b + "<br>total = " + total);


</script>

 


배열2_문제01.html

 

<script>

    /*
        [문제]
            랜덤 숫자(1~5)를 한 개 저장한다.
            랜덤 숫자만큼 반복문을 돌리고,
            저장한 랜덤 숫자를 계속 저장한다.
        [예시]
            r = 5
            arr = 5,5,5,5,5    
    */  

    let r = Math.floor(Math.random() * 5) + 1;
    let arr = [];
    document.write("랜덤숫자 = " + r + "<br>");

    for(let i = 0 ; i < r; i++){
        arr.push(r);
    }
    document.write(arr + "<br>")



</script>

 


배열2_문제02_비교.html

 

<script>

    /*
        [문제]
            [조건1] arr배열에 랜덤 숫자(1~100) 5개를 추가한다.
            [조건2] 위 값 중에 50보다 큰 값들만 출력한다.
        [예시]
            arr = 6,78,56,73,1
            78
            56
            73    
    */

    let arr = [];
   
    for(let i = 0; i < 5; i++){
        arr.push(Math.floor(Math.random() * 100 ) + 1)
    }
    document.write("arr = " + arr + "<br>");
    for(let i = 0; i < 5; i++){
        if(arr[i] > 50){
            document.write(arr[i] + "<br>");
        }
    }
   
</script>

 


배열2_문제03_두배복사.html

 

<script>

    /*
        [문제]
            랜덤 숫자(1~10) 다섯 개를 arr배열에 추가하고
            그 두 배의 값을 total배열에 각각 저장 후 출력하시오.
        [예시]
            arr   =  9, 6, 7,1, 6
            total = 18,12,14,2,12  
    */

    let arr = [];
    let total = [];

    for(let i = 0; i < 5; i++){
        arr.push(Math.floor(Math.random() * 10 ) + 1);
        total.push(arr[i] * 2);
    }
    document.write("arr = " + arr + "<br>total = " + total + "<br>");

</script>

 


배열2_문제04_비교_배수.html

 

<script>

    /*
        [문제]
            [조건1] arr배열에 랜덤 숫자(1~100) 다섯 개를 추가한다.
            [조건2] 위 값 중에 5의 배수들만 출력하시오.
        [예시]
            arr = 70,34,58,10,74
            70
            10  
    */

    let arr = [];

    for(let i = 0 ; i < 5; i++){
        arr.push(Math.floor(Math.random() * 100) + 1);
        if(arr[i] % 5 == 0){
            document.write(arr[i] + "<br>");
        }
    }
    document.write("arr = " + arr + "<br>");

   
</script>

 


배열2_문제05_비교_and.html

 

<script>

    /*
        [문제]
            [조건1] arr배열에 랜덤 숫자(1~100) 20개를 추가한다.
            [조건2] 위 값 중 50보다 크면서 7의 배수만 출력하시오.
        [예시]
            arr = 11,12,55,34,74,68,20,92,57,12,70,84,41,42,91,64,42,92,41,90
            70
            84
            91  
    */

    let arr = [];


    for(let a = 0; a < 20; a++){
        let num = Math.floor(Math.random() * 100 + 1);
        arr[a] = num;
        if(arr[a] > 50 && arr[a] % 7 == 0){
            document.write(arr[a] + " ");
        }
    }
    document.write("<br>" + arr);

</script>

 


배열2_문제06_비교_or.html

 

<script>

    /*
        [문제]
            [조건1] arr배열에 랜덤 숫자(1~100) 20개를 추가한다.
            [조건2] 위 값 중 30보다 작거나 70보다 크면서 4의 배수만 출력하시오.
        [예시]
            arr = 43,43,25,3,49,85,78,75,54,10,42,75,96,58,31,24,1,86,44,16
            25
            3
            10
            96
            24
            1
            16    
    */

    let arr = [];


    for(let a = 0; a < 20; a++){
        let num = Math.floor(Math.random() * 100 + 1);
        arr[a] = num;

        if(arr[a] < 30 || (arr[a] > 70 && arr[a] % 4 == 0)){
            document.write(arr[a] + "<br>");
        }
    }
    document.write("<br>" + arr);

</script>

 


배열2_문제07_랜덤비교.html

 

<script>

    /*
        [문제]
            [조건1] a배열과 b배열 두 개에 1~100 사이의 랜덤 값 다섯 개를 저장한다.
            [조건2] base 변수에 랜덤으로 1~100 사이의 숫자를 저장한다.
                    base 변수 값보다 큰 값들을 전부 출력하시오.
        [예시]  
            a = 73,35,40,14,17
            b = 87,61,18,16,69
            base = 36
            a : 73
            b : 87
            b : 61
            a : 40
            b : 69          
    */

    let a = [];
    let b = [];
    let base = 0;
    for(let c = 0; c < 5; c++){
       
       
        a.push(Math.floor(Math.random() * 100 + 1));
        b.push(Math.floor(Math.random() * 100 + 1));

    }  
    document.write("a = " + a +"<br>b = " + b + "<br>");
    base = (Math.floor(Math.random() * 100 + 1));
    document.write("base = " + base + "<br>");
   
    for(let c = 0; c < 5; c++){
    if(a[c] > base){
        document.write("a : " + a[c] +"<br>")
    }
    if(b[c] > base){
        document.write("b : " + b[c] + "<br>")
    }
    }

   

   


</script>

 


배열2_문제08_배열두개비교.html

 

<script>

    /*
        [문제]
            [조건1] a배열과 b배열 두 개에 1~100 사이의
                    랜덤 값 다섯 개를 저장한다.
            [조건2] 둘 다 짝수이면 "짝수" 출력,
                    둘 다 홀수이면 "홀수" 출력,
                    한쪽은 홀수이고 다른 한쪽은 짝수이면
                    "다르다"를 출력하시오.
        [예시]    
            a = 15,7,98,24,54
            b = 9,50,16,12,81
            홀수
            다르다
            짝수
            짝수
            다르다        
    */

    let a = [];
    let b = [];



    for(let c = 0; c < 5; c ++){
        a.push(Math.floor(Math.random() * 100 + 1));
        b.push(Math.floor(Math.random() * 100 + 1));

    }
    document.write("a = " + a + "<br>b = " + b + "<br>");
    for(let c = 0; c < 5; c++){
        if(a[c] % 2 == 0 && b[c] % 2 == 0){
            document.write("짝수<br>");
        } else if (a[c] % 2 != 0 && b[c] % 2 != 0){
            document.write("홀수<br>")
        }else{
            document.write("다르다<br>");
           
        }
    }

</script>

 


배열2_문제09_크기비교추가.html

 

<script>

    /*
        [문제]
            두 개의 배열 a와 b에 숫자를 랜덤(1~9 사이의 숫자)으로 5개씩 저장한다.
            두 배열 중 a값이 더 크면 arr1 배열에 저장한다.
            b의 값이 더 크면 arr2 배열에 저장한다.
            앞에서부터 순차적으로 저장하며,
            만약에 값이 같으면 둘 다 저장한다.
            총 다섯 번을 반복하고 배열을 출력하시오.
        [예시]
            a = 8,5,6,1,4
            b = 2,1,7,6,5
            arr1 = 8,5
            arr2 = 7,6,5  
    */
/*
    let a = [];
    let b = [];

    let arr1 = [];
    let arr2 = [];
   

    for(let c = 0; c < 5; c++){
        a.push(Math.floor(Math.random() * 9 + 1));
        b.push(Math.floor(Math.random() * 9 + 1));
        if(a[c] == b[c]){
            arr1[c] = a[c];
            arr2[c] = b[c];
        } else if (a[c] > b[c]){
            arr1[c] = a[c];
        }   else {
            arr2[c] = b[c];
        }
    }  
    document.write("a = " + a + "<br>b = " + b + "<br>arr1 = " + arr1 + "<br>arr2 = " +  arr2 );
   */
   let a = [];
    let b = [];

    let arr1 = [];
    let arr2 = [];

    for(let i=0; i<5; i++) {
        a.push(Math.floor(Math.random() * 9) + 1);
        b.push(Math.floor(Math.random() * 9) + 1);
    }
    document.write("a = " + a + "<br>");
    document.write("b = " + b + "<br>");

    for(let i=0; i<5; i++) {
        if(a[i] > b[i]) {
            arr1.push(a[i]);
        } else if(a[i] < b[i]) {
            arr2.push(b[i]);
        } else if(a[i] == b[i]) {
            arr1.push(a[i]);
            arr2.push(b[i]);
        }
    }
    document.write("arr1 = " + arr1 + "<br>");
    document.write("arr2 = " + arr2 + "<br>");


</script>

 


배열3_개념01_누적합.html

 

<script>

  /*
        [문제]
            [조건1] arr배열에 랜덤숫자(1~10) 5개를 추가하고,
            [조건2] 위 조건의 누적합을 출력하시오.
        [예시]
            arr   = 6,7,10,7,9
            total = 39        
    */
    let a = [];

    let total = 0;

    for(let b = 0; b < 5; b++){
        a.push(Math.floor(Math.random() * 10 + 1));
        total += a[b]
       
    }
    document.write("a = " + a +"<br>total = " + total);

</script>

 


배열3_개념02_개수.html

 

<script>
     /*
        [문제]
            [조건1] arr배열에 랜덤숫자(1~10) 다섯 개를 추가한 후,  
                    5보다 큰수만 출력하시오.
            [조건2] 위 조건의 개수도 함께 출력하시오.  
        [예시]  
            arr = 3,5,8,4,9
            8 9
            개수 = 2      
    */

    let arr = [];
    let count = 0;

    for(let a = 0; a < 5; a++){
        arr.push(Math.floor(Math.random() * 10 + 1));
    }
    document.write("arr = " + arr + "<br>");
    for(let a = 0; a < 5; a++){
        if(arr[a] > 5 ){
            count += 1;
            document.write(arr[a] + " ");
        }
    }
</script>

 


배열3_개념03_학생관리.html

 

<script>

 /*
        [문제]
            numbers배열은 학생 다섯 명의 번호이다.
            scores배열은 위 학생들의 수학 점수이다.
            60점 이상은 합격이다.
            [조건1] 합격생들의 번호와 점수 출력하시오.
            [조건2] 전체 학생들의 점수와 평균을 출력하시오.
            [조건3] 합격생들이 몇 명인지를 출력하시오.
        [정답]
            합격생 >>>
            1003번 = 65점
            1004번 = 90점
            1005번 = 89점
            합격생 수 = 3명
            총점 = 286점, 평균 = 57.2점    
    */

    let numbers = [];
    let scores = [];
    let count = 0;
    let total = 0;


    for(let a = 0; a < 5; a++){
        numbers.push(a + 1);
        scores.push(Math.floor(Math.random() * 101));
        total += scores[a];
       
        if(scores[a] >= 60){
            count += 1;
            document.write(numbers[a] + "번 = " + scores[a] + "<br>");
        }
       
    }
    document.write("합격생 수 = "  + count + "<br>")
    document.write("총점 = " + total + " 평균 = " + total / 5);

   
</script>

 


배열3_개념04_배수찾기.html

 

<script>
 /*
        [문제]
            랜덤 숫자 100~200을 arr배열에 다섯 개 저장하고,
            다섯 개 숫자 중에 3의 배수들을 출력하시오.
            3의 배수들의 개수와
            3의 배수들의 누적 합도 출력하시오.  
        [예시]  
            arr = 172,148,136,192,108
            192 108
            3의 배수의 개수 = 2
            3의 배수의 합 = 300      
    */

    let arr = [];
    let count = 0;
    let total = 0;


    for(let a = 0; a < 5; a++){
        arr.push(Math.floor(Math.random() * 101 + 100));

    }
    document.write("arr = " + arr + "<br>");
   
    for(let a = 0; a < 5; a++){
        if(arr[a] % 3 == 0){
            count += 1;
            total += arr[a];
            document.write(arr[a] +"<br>");
        }
    }
    document.write("3의 배수의 개수 = " + count + "<br>3의 배수의 합 = " + total);
   
</script>

 


배열3_개념05_약수찾기.html

 

<script>
/*
        [문제]
            랜덤숫자 1~10을 arr배열에 다섯 개 저장한다.
            다섯 개 숫자 중에 40의 약수들을 출력하시오.
            40의 약수들의 개수와
            40의 약수들의 누적 합도 함께 출력하시오.    
        [예시]
            arr = 6,9,1,4,9
            1 4
            40의 약수의 개수 = 2
            40의 약수의 합 = 5        
    */

    let arr = [];
    let count = 0;
    let total = 0;

    for(let a = 0; a < 5; a++){
        arr.push(Math.floor(Math.random() * 10 + 1));
    } document.write("arr = " + arr + "<br>");
    for(let a = 0; a < 5; a++){
        if(40 % arr[a] == 0){
            count += 1;
            total += arr[a];
            document.write(arr[a] + "<br>");
        }
    }
    document.write("40의 약수의 개수 = " + count + "<br>40의 약수의 합 = " + total);

</script>

 


배열3_개념06_구구단게임.html

 

<script>

 /*
        [문제]
            배열 a와 b의 각 자리의 곱을 total의 각 자리에 저장 후 출력하시오.
            단, op 의 값이 0이면 양수로 저장하고,
            1이면 음수로 저장하시오.
        [정답]
            a = 3 , b = 5 , op = 0 이므로 양수로 저장 total = 15
            a = 4 , b = 3 , op = 1 이므로 음수로 저장 total = 15, -12
            a = 2 , b = 1 , op = 0 이므로 양수로 저장 total = 15, -12, 2
            a = 8 , b = 7 , op = 0 이므로 양수로 저장 total = 15, -12, 2, 56
            a = 8 , b = 7 , op = 1 이므로 음수로 저장 total = 15, -12, 2, 56, -18
    */

    let a  = [3, 4, 2, 8, 6];
    let b  = [5, 3, 1, 7, 3];
    let op = [0, 1, 0, 0, 1];
   
    let total = [];

    for(let c = 0; c < 5; c++){
        document.write("a = " + a[c] + ", b = " + b[c] + ", op = " + op[c] + "이므로 ");
        if(op[c] == 0){
            total.push(a[c]+ b[c]);
            document.write("양수로 저장 &nbsp;&nbsp;&nbsp;  ");
        } else {
            total.push((a[c] + b[c]) * -1);
            document.write("음수로 저장 &nbsp;&nbsp;&nbsp;    ");
        }
        document.write("total  = " + total + "<br>");
    }
   

</script>

 


배열3_문제01_비교.html

 

<script>

    /*
        [문제]
            [조건1] 배열 arr에 랜덤숫자(1~100) 5개를 추가한다.
            [조건2] 배열의 숫자 중 50보다 큰 값들만 출력하시오.
            [조건3] 위 조건의 값들의 누적된 합을 출력하시오.
            [조건4] 위 조건의 개수를 출력하시오.
        [예시]
            arr = 2,95,85,24,7
            출력 = 95 85
            합 = 180
            개수 = 2
    */

    let arr = [];

    let count = 0;
    let total = 0;

    for( let a = 0; a < 5; a++){
        arr.push(Math.floor(Math.random() * 100 + 1));
       
    } document.write("arr = " + arr + "<br>출력 = ");
    for( let a = 0; a < 5; a++){
        if(arr[a] > 50){
            count += 1;
            total += arr[a];
            document.write(arr[a] + "  " );

        }
    }
    document.write("<br>합 = " + total +"<br>개수 = " + count);
</script>

 


배열3_문제02_배수_누적개수.html

 

<script>

    /*
        [문제]
            [조건1] 배열에 랜덤숫자(1~100) 5개를 추가하고,
            [조건2] 짝수만 출력하시오.
            [조건3] 짝수의 누적 합을 저장 후 출력하시오.
            [조건4] 짝수의 개수를 출력하시오.
        [예시]
            arr = 88,71,48,13,27
            출력 = 88 48
            합 = 136
            개수 = 2  
    */

    let arr = [];

    let count = 0;
    let total = 0;
   

    for(let a = 0; a < 5; a++){
        arr.push(Math.floor(Math.random() * 100 + 1));
    } document.write("arr = " + arr + "<br>출력 =");
    for(let a = 0; a < 5; a++){
       
        if(arr[a] % 2 == 0){
            count += 1;
        total += arr[a];
            document.write(arr[a] + " ")
        }
    } document.write("<br>합 = " + total + "<br>개수 = " + count);
</script>

 


배열3_문제03_omr카드.html

 

<script>

    /*
        [문제]
            배열 omr의 값들은 이번 시험 정답이다.
            배열 myAnswer는 철수의 답안지이다.
            랜덤숫자(1~5) 열 개를 myAnswer에 추가 후,
            정답과 비교해서 철수의 점수를 출력하시오.
            한 문제당 10점이다.
        [예시]
            omr      = 4, 3, 1, 5, 3, 2, 1, 4, 5, 3
            myAnswer = 5, 2, 5, 5, 2, 1, 4, 4, 4, 1
            score    = 20점  
    */

    let omr = [4, 3, 1, 5, 3, 2, 1, 4, 5, 3];
    let myAnswer = [];
    let count = 0;
   
   
    document.write("omr =&nbsp;&nbsp;&nbsp;" + omr + "<br>");

    for(let a = 0; a < omr.length; a++ ){
        myAnswer.push(Math.floor(Math.random() * 5 + 1 ));
    }   document.write("myAnswer = " + myAnswer + "<br>");

    for(let a = 0; a < omr.length; a++ ){
        if(myAnswer[a] == omr[a]){
            count += 1;
        }
    }
    let score = 10 * count;
   document.write("score = " + score);
</script>

 


배열3_문제04_배열두개_누적.html

 

<script>

    /*
        [문제]
            배열 a와 b에 랜덤 숫자(1~100)를 다섯 개씩 저장하고,
            배열 a의 전체 합과 배열 b의 전체 합 중 더 큰 값을 출력하시오.
            단, 서로 같으면 둘 다 출력하시오.
        [예시]
            a = 93, 100, 41, 74, 45
            b = 84,  80, 25, 19, 27
            totalA = 353
            totalB = 235
            353    
    */

    let a = [];
    let b = [];
    let totalA = 0;
    let totalB = 0;
    for(let c = 0; c < 5; c++){
        a.push(Math.floor(Math.random() * 100 + 1));
        b.push(Math.floor(Math.random() * 100 + 1));
    } document.write("a = " + a +"<br>b = " + b +"<br>");
    for(let c = 0; c < 5; c++){
        totalA += a[c];
        totalB += b[c];
    } document.write("totalA = " + totalA + "<br>tatalB = " + totalB + "<br>");
    if(totalA == totalB){
        document.write("같다 : " + totalA);
    } else if (totalA > totalB){
        document.write("a의 전체 합이 더 크다 : " + totalA );

    } else {
        document.write("b의 전체 합이 더 크다 : " + totalB );
    }

</script>

 


배열3_문제05_배열두개_홀수.html

 

<script>

    /*
        [문제]
            배열 a와 배열 b에 랜덤 숫자(1~100)를 다섯 개씩 저장하고,
            배열 a의 홀수 합과 배열 b의 홀수 합을 비교해서 더 큰 값을 출력하시오.
            단, 서로 같으면 둘 다 출력하시오.
        [예시]
            a = 28, 79, 47, 70, 36
            b = 63,  4, 45, 54, 87
            totalA = 126
            totalB = 195
            195    
    */

    let a = [];
    let b = [];

    let totalA = 0;
    let totalB = 0;


    for(let c = 0; c < 5; c++){
        a.push(Math.floor(Math.random() * 100 + 1));
        b.push(Math.floor(Math.random() * 100 + 1));

        if(a[c] % 2 == 1){
            totalA += a[c];        
        } else {
            totalB += b[c];
        }
       
    } document.write("a = " + a + "<br>b = " + b + "<br>totalA = " + totalA + "<br>totalB = " + totalB + "<br>");
    if(totalA == totalB){
        document.write("서로같다 :" + totalA);
    } else if(totalA > totalB){
        document.write("a의 홀수 합이 더 크다 : " + totalA);
    } else {
        document.write("b의 홀수 합이 더 크다 : " + totalB);
    }


</script>

 


배열3_문제06_연산자게임.html

 

<script>

    /*
        [문제]
            배열 a와 b의 각 자리의 숫자끼리 더하기 또는 빼기 또는 곱하기를 해서
            배열 total에 저장하려 한다.
            더하기, 빼기, 또는 곱하기는 op의 값으로 정한다.
            op가 0 이면 더하기
            op가 1 이면 빼기
            op가 2 이면 곱하기이다.
        [정답]
            a = 3 , b = 5 , op = 0 은 더하기 이다 : total = 8
            a = 4 , b = 3 , op = 1 은 빼기 이다   : total = 8, 1
            a = 2 , b = 1 , op = 0 은 더하기 이다 : total = 8, 1, 3
            a = 8 , b = 7 , op = 2 는 곱하기 이다 : total = 8, 1, 3, 56
            a = 6 , b = 3 , op = 1 은 빼기 이다   : total = 8, 1, 3, 56, 3

            total = 8, 1, 3, 56, 3    
    */

    let a = [3, 4, 2, 8, 6];
    let b = [5, 3, 1, 7, 3];
    let op = [0, 1, 0, 2, 1];
   
    let total = [];

    for(let c = 0; c < op.length; c++){
        document.write("a = " + a[c] + ", b = " + b[c] + ", op = " + op[c] + " 은 ")
        if(op[c] == 0){
            total.push(a[c] + b[c]);
            document.write("더하기 이다 : ");
        } else if (op[c] == 1){
            total.push(a[c] - b[c]);
            document.write("뺴기 이다 : ");
        } else {
            total.push(a[c] * b[c]);
            document.write("곱하기 이다 : ");
        }
        document.write("total = " + total + "<br>");
    }


</script>

 


배열3_문제07_택시게임.html

 

<script>

    /*
        [문제]    
            현재 택시는 5, 5 위치에 있다. (y = 5 , x = 5)
            dir배열은 뱡향을 뜻하고 [0, 1, 2 ,3]은 [북, 동, 남, 서]를 뜻한다.    
            speed배열은 속도를 뜻한다.  
            dir과 speed배열은 택시가 매번이동한 내용을 기록한 것이다.    
            dir과 speed를 다 적용하면 y와 x는 어디에 와있는지 출력하시오.
        [정답]
            dir = 3, speed = 4 : 서쪽으로 4칸이므로 x에서 4를 뺀다.
            dir = 2, speed = 3 : 남쪽으로 3칸이므로 y에서 3을 뺸다.
            dir = 1, speed = 1 : 동쪽으로 1칸이므로 x에서 1을 더한다.
            dir = 0, speed = 2 : 북쪽으로 2칸이므로 y에서 2를 더한다.
            dir = 1, speed = 3 : 동쪽으로 3칸이므로 x에서 3을 더한다.

            y = 4
            x = 5    
    */

    let y = 5;
    let x = 5;

    let dir = [3, 2, 1, 0, 1];
    let speed = [4, 3, 1, 2, 3];


    for(let a = 0; a < dir.length; a++){
        document.write("dir = " + dir[a] + " &nbsp;&nbsp;speed = " + speed[a] + " : &nbsp;&nbsp;" );

        if(dir[a] == 0){
            y + speed[a];
            document.write("북쪽으로 " + speed[a] + "칸이므로 y에서 " + speed[a] + " 를 더한다.<br>");
        } else if(dir[a] == 1){
            x + speed[a];
            document.write("동쪽으로 " + speed[a] + "칸이므로 x에서 " + speed[a] + " 를 더한다.<br>");
        } else if(dir[a] == 2){
            y - speed[a];
            document.write("남쪽으로 " + speed[a] + "칸이므로 y에서 " + speed[a] + " 를 뺀다.<br>");
        } else if(dir[a] == 3){
            x - speed[a];
            document.write("서쪽으로 " + speed[a] + "칸이므로 x에서 " + speed[a] + " 를 뺸다.<br>");
        }
    }

    document.write("y = " + y + "<br>x = " + x);

</script>

 


배열3_문제08_가위바위보게임.html

 

<script>

    /*
        [문제]
            철수와 민수는 가위바위보를 6회 하였다.
            가위(0), 바위(1), 보(2)를 뜻한다.
            아래 배열은 각각 가위바위보를 낸 기록을 저장한 것이다.
            철수와 민수는 계단 50번째부터 게임을 시작하였다.
            민수는 게임을 모두 끝마치고 어디 있는지 구하시오.
            [규칙]
                이기면 5칸 올라간다.
                비기면 1칸 올라간다.
                지면 3칸 내려간다.
        [정답]
            48    
    */

    let 철수 = [0,1,2,2,1,0];
    let 민수 = [2,1,1,2,0,1];
   
    let 철수_위치 = 50;
    let 민수_위치 = 50;

    for(let a = 0; a < 철수.length; a++){
        if(철수[a] == 민수[a]){
            document.write("비겼다!!<br>");
            철수_위치 += 1;
            민수_위치 += 1;
        }
        if(철수[a] == 0 && 민수[a] == 2){
            document.write("철수가 이겼다!<br>");
            철수_위치 += 5;
            민수_위치 -= 3;
        }
        if(철수[a] == 1 && 민수[a] == 0){
            document.write("철수가 이겼다!<br>");
            철수_위치 += 5;
            민수_위치 -= 3;
        }
        if(철수[a] == 2 && 민수[a] == 1){
            document.write("철수가 이겼다!<br>");
            철수_위치 += 5;
            민수_위치 -= 3;
        } else {
            document.write("민수가 이겼다!<br>");
            철수_위치 -= 3;
            민수_위치 += 5;
        }
    }
    document.write("민수 위치 = "  + 민수_위치);

</script>

 


배열3_문제09_369게임.html

 

<script>

    /*
        [문제]
            [1] 1~50까지 반복한다.
            [2] 3이나 6이나 9가 없는 수 중 짝수만 arr배열에 추가하시오.
        [정답]
            arr = 2, 4, 8, 10, 12, 14, 18, 20, 22, 24, 28, 40, 42, 44, 48, 50  
    */

    let arr = [];
    let x = 0;



    for(let a = 1; a <= 50; a++){
        let 십의자리 = parseInt(a / 10);
        let 일의자리 = a % 10;

        if(a % 2 == 0 ){
            if(십의자리 != 3 && 십의자리 != 6 && 십의자리 != 9 && 일의자리 != 3 && 일의자리 != 6 && 일의자리 != 9)
               
                arr.push(a);
            }
        }

   
    document.write("arr = " + arr);
</script>

 


배열3_문제10_사탕나눠주기.html

 

<script>

    /*
        [문제]
            아래 배열 candy는 각 병에 들어있는 사탕의 양이다.
            한 사람당 한 병에서 25개씩 나눠주려 한다.
            나눠줄 수 있는 사람 수를 count배열에 저장하시오.
            나눠주고 남은 사탕은 remainder배열에 순차적으로 저장하시오.
        [정답]
            candy     = 80, 53, 36, 22
            count     = 3, 2, 1, 0
            remainder = 5, 3, 11, 22  
    */

    let candy = [80, 53, 36, 22];
    let count = [];
    let remainder = [];

    for(let a = 0; a < candy.length; a += 1){
       let  x = parseInt(candy[a] / 25);
       let  y = candy[a] % 25;

        count.push(x);
        remainder.push(y);
    }

    document.write("count = " + count + "<br>remainder =  " + remainder)


</script>

 


배열3_문제11_처음사탕수.html

 

<script>

    /*
        [문제]
            사탕 나눠주기 행사하고 있다.
            병은 총 4병이고, 각 사탕의 개수는 각기 다르다.
            사탕은 한 사람당 25개씩 나눠주고 있다.
            count 배열은 오늘 사탕을 나눠준 사람 수다.
            remainder 배열은 사탕을 나눠주고 난 나머지이다.
            오늘 처음 가져온 사탕 수를 구하시오.
        [정답]
            candy = [80, 53, 36, 22]
       
            (1) count는 3으로 25를 곱하면 75 이고 나머지는 5이므로 원래는 80개이다.
                candy = [80]
            (2) count는 2로 25를 곱하면 50 이고 나머지는 3이므로 원래는 53개이다.
                candy = [80, 53]
            (3) count는 1로 25를 곱하면 25 이고 나머지는 11 이므로 원래는 36개이다.
                candy = [80, 53, 36]
            (4) count는 0으로 25를 곱하면 0 이고 나머지는 22이므로 원래는 22개이다.
                candy = [80, 53, 36, 22]    
    */

    let count = [3, 2, 1, 0];
    let remainder = [5, 3, 11, 22];
   
    let candy = [];


    for(let a = 0; a < count.length; a++){
        candy.push(count[a] * 25 + remainder[a])
    }
    document.write(candy);
 
</script>