라라리라

2023.08.16 / Step 9 [문자열] - 코딩 28 일차 본문

코딩/2023 JavaScript Console

2023.08.16 / Step 9 [문자열] - 코딩 28 일차

헤실 2023. 8. 16. 20:31

문자열3_개념01_학생정보.html

 

<script>

    let student = [
        ["번호",  "이름", "성별", "국어", "수학"],
        [1001,  "이만수",  "",     10,     20],
        [1002,  "이영희",  "",     70,     30],
        [1003,  "김민정",  "",     64,     65],
        [1004,  "이철민",  "",     13,     87],
        [1005,  "오만석",  "",     49,     80],
        [1005,  "최이슬",  "",     14,     90]
    ];

    /*
        [문제]
            여학생들 점수 총합과 남학생들의 점수 총합을 비교하고
            점수가 더 큰 쪽을 출력하시오.
        [정답]
            333
    */
    let total = [0, 0];
    let max남 = 0;
    let max여 = 0;
    for(let i = 1; i < student.length; i++){
       if(student[i][2] == ""){
        total[0] += (student[i][3] + student[i][4]);
        if(max남 < total[0]) max남 = total[0];
       } else {
        total[1] += (student[i][3] + student[i][4]);
        if(max여 < total[1]) max여 = total[1];
       }
    }
    document.write(total[0] + " " + total[1] + "<br>");
    if(max남 > max여) document.write("남자 총합 = " + max남 + "<br>");
    else document.write("여자 총합 = " + max여 + "<br>");
   


</script>

 

 


문자열3_개념02_학생정보.html

 

<script>

    let student = [
        ["번호",  "이름", "성별", "국어", "수학"],
        [1001,  "이만수",  "",     10,     20],
        [1002,  "이영희",  "",     70,     30],
        [1003,  "김민정",  "",     64,     65],
        [1004,  "이철민",  "",     13,     87],
        [1005,  "오만석",  "",     49,     80],
        [1005,  "최이슬",  "",     14,     90]
    ];

    /*
        [문제]
            평균이 60점 이상이면 합격이다.
            합격생들 번호, 이름, 평균점수를 출력하시오.
        [정답]
            1003 김민정 64.5
            1005 오만석 64.5
    */
    for(let i = 1; i < student.length; i++){
        let avg = (student[i][3] + student[i][4]) / 2;
        if(avg >= 60){
            document.write(student[i][0] + " " + student[i][1] + " " + avg.toFixed(1) + "<br>");
        }
    }

</script>

 

 


문자열3_개념03_학생정보.html

 

<script>

    let student = [
        ["번호",  "이름", "성별", "국어", "수학"],
        [1001,  "이만수",  "",     10,     20],
        [1002,  "이영희",  "",     70,     30],
        [1003,  "김민정",  "",     64,     65],
        [1004,  "이철민",  "",     13,     87],
        [1005,  "오만석",  "",     49,     80],
        [1005,  "최이슬",  "",     14,     90]
    ];

    /*
        [문제]
            국어 점수가 수학 점수 보다 큰 학생들의
            번호, 이름을 출력하시오.
        [정답]
            1002 이영희
    */

    for(let i = 1; i< student.length; i++){
        if(student[i][3] > student[i][4]){
            document.write(student[i][0] + " " + student[i][1] + "<br>");
        }
    }

</script>

 

 


문자열3_개념04_학생정보.html

 

<script>

    let student = [
        ["번호",  "이름", "성별", "국어", "수학"],
        [1001,  "이만수",  "",     10,     20],
        [1002,  "이영희",  "",     70,     30],
        [1003,  "김민정",  "",     64,     65],
        [1004,  "이철민",  "",     13,     87],
        [1005,  "오만석",  "",     49,     80],
        [1005,  "최이슬",  "",     14,     90]
    ];

    /*
        [문제]
            1등의 번호, 이름을 출력하시오.
            만약 여러 명이면 전부 출력하시오.
        [정답]
            1003 김민정
            1005 오만석
    */
   let max = 0;
   for(let i = 1; i < student.length; i++){
    let sum = student[i][3] + student[i][4];
    if(max < sum) max = sum;
   }
   for(let i = 1; i < student.length; i++){
    let sum = student[i][3] + student[i][4];
    if(max == sum){
        document.write(student[i][0] + " " + student[i][1] + "<br>");
    }
   }
   

</script>

 

 


문자열3_개념05_가위바위보.html

 

<script>

    /*
        [문제]
            아래 배열은 철수와 민수의 가위바위보 데이터이다.
            왼쪽이 철수의 데이터이고 오른쪽이 민수의 데이터이다.
           
            가위, 바위, 보
           
            민수와 철수는 계단 50번째에서 게임을 시작했으며,
            아래의 규칙을따른다.
            철수는 게임 종료 후 몇번째 계단에 있을지 구하시오.
        [규칙]
            이기면 계단 5증가
            비기면 계단 1증가
            지면 계단 3감소          
        [정답]
            56
    */

    let arr = [
        ["바위", "가위"],
        ["바위",   ""],
        ["  보", "가위"],
        ["가위", "가위"],
        ["바위", "바위"],
        [  "", "바위"]
    ]
    let pos = 50;

    for(let i=0; i<arr.length; i++) {
        if(arr[i][0] == arr[i][1]) {
            pos += 1;
            document.write("비겼다<br>");
        } else if(arr[i][0] == "가위" && arr[i][1] == "") {
            pos += 5;
            document.write("이겼다<br>");
        } else if(arr[i][0] == "바위" && arr[i][1] == "가위") {
            pos += 5;
            document.write("이겼다<br>");
        } else if(arr[i][0] == "" && arr[i][1] == "바위") {
            pos += 5;
            document.write("이겼다<br>");
        } else {
            pos -= 3;
            document.write("졌다<br>");
        }
    }

    document.write(pos);
   
</script>

 

 


문자열3_문제01_택시.html

 

<script>

    /*
        [문제]    
            현재 택시는 5, 5 위치에 있다.
            배열의 왼쪽 세로줄은 속도를 뜻한다.
            배열의 오른쪽 세로줄은 방향을 뜻하고 (북, 동, 남, 서)를 뜻한다.
           
            속도와 방향은 택시가 매번 이동한 내용을 기록한 것이다.
           
            예) 속도는 4이고 방향은 북쪽을 뜻한다.
                y가 4증가해  x : 5 , y : 9 가 된다.  
               
            6번 모두 이동한 후 택시의 위치를 출력하시오.
        [정답]
            y = 2
            x = -1  
    */

    let arr = [
        [4, ""],
        [2, ""],
        [1, ""],
        [5, ""],
        [4, ""],
        [1, ""]
    ]

    let x = 5;
    let y = 5;

    for(let i = 0; i < arr.length; i++){
        if(arr[i][1] == "") y -= arr[i][0];
        if(arr[i][1] == "") x += arr[i][0];
        if(arr[i][1] == "") y += arr[i][0];
        if(arr[i][1] == "") x -= arr[i][0];
    }
    document.write("y = " + y + "<br>x = " + x + "<br>");
</script>

 

 


문자열3_문제02_사다리게임.html

 

<script>

    /*
        [문제]
            1. 랜덤(0~4)를 하나를 선택한다.
            2. 숫자0 을 만나면 그냥 아래로 내려간다.
            3. 숫자1 을 만나면 오른쪽으로 이동 후 내려간다.
            4. 숫자2 를 만나면 왼쪽으로 이동 후 내려간다.
            5. 오늘의 메뉴를 출력하시오.
        [정답]
            r = 0, 된장찌개
            r = 1, 돈까스
            r = 2, 떡라면
            r = 3, 짜장면
            r = 4, 쫄면    
    */

    let menu = ["떡라면", "돈까스","짜장면", "쫄면", "된장찌개"];

    let ladder = [
        [0,0,0,0,0],
        [1,2,0,1,2],
        [0,1,2,0,0],
        [0,0,1,2,0],
        [1,2,0,1,2],
        [0,1,2,0,0],
        [0,1,2,0,0],
        [0,0,1,2,0],
        [0,0,0,0,0]
    ];
    let r = Math.floor(Math.random() * 5);
    document.write("랜덤숫자 = " + r + "<br>");
    for(let i = r; i < ladder[0].length; i++){
        for(let j = 0; j < ladder.length; j++){
            if(ladder[j][i] == 1) i++;
            else if(ladder[j][i] == 2) i--;
        }
        document.write(menu[i]);
        break;
    }
</script>

 


문자열3_문제03_체육대회.html

 

<script>

    /*
        [문제]
            철수네 반은 체육대회를 준비하고 있다.
            달리기 배열은 달리기 대회에 참가하는 학생들이다.
            배구 배열은 배구 대회에 참가하는 학생들이다.
            둘 중 하나만 참가하는 학생들을 c배열에 저장하시오.
        [정답]
            c = ['김철수', '신민아', '최재식', '이진상', '소지석', '유재석', '이민자', '박명수', '유명새', '킬리만자로']
    */

    let 달리기 = [
        ["김철수","이서영","최민식"],
        ["조춘자","김말숙","이진상"],
        ["유재석","박명수","킬리만자로"]
    ];
    let 배구 = [
        ["신민아","김말숙","최재식"],
        ["최민식","이서영","소지석"],
        ["이민자","유명새","조춘자"]
    ];

    let c = [];
    for(let i = 0; i < 달리기.length; i++){
        for(let j = 0; j < 달리기.length; j++){
            let check = false;
            for(let k = 0; k < 배구.length; k++){
                for(let l = 0; l < 배구.length; l++){
                    if(달리기[i][j] == 배구[k][l]){
                        check = true;
                        break;
                    }
                }
            } if(check == false) c.push(달리기[i][j]);
            check = false;
            for(let k = 0; k < 달리기.length; k++){
                for(let l = 0; l < 달리기.length; l++){
                    if(배구[i][j] == 달리기[k][l]){
                        check = true;
                        break;
                    }
                }
            }
            if(check == false) c.push(배구[i][j]);
        }
    }
    document.write("c = " + c + "<br>")
</script>