라라리라

2023.08.15 / Step 9 [문자열] - 코딩 27 일차 본문

코딩/2023 JavaScript Console

2023.08.15 / Step 9 [문자열] - 코딩 27 일차

헤실 2023. 8. 15. 23:21

문자열2_개념01_문자열배열.html

 

<script>

    /*
        [개념] 문자열 배열
            [1] 문자열도 숫자와 마찬가지로 배열로 만들 수 있다.
                a = ["김철수", "이민수", "유영희"]
               
            [2] 배열은 숫자와 문자를 섞어서 만들 수 있다.
                b = [1001, "김철수", 1002, "이민수", 1003, "유영희"]
               
            [3] 이차원 배열도 만들 수 있다.
                c = [
                        [1001, "김철수"],
                        [1002, "이민수"],
                        [1003, "유영희"]
                    ]    
    */

    let stNo = [1001, 1002, 1003];
    let stName = ["김철수", "이민수", "유영희"];
    document.write(stNo + "<br>");
    document.write(stName + "<br>");

    let stInfo1 = [1001, "김철수", 1002, "이민수", 1003, "유영희"];
    document.write(stInfo1 + "<br>");

    let stInfo2 = [
        [1001, "김철수"],
        [1002, "이민수"],
        [1003, "유영희"]
    ];
    for(let i=0; i<stInfo2.length; i++) {
        document.write(stInfo2[i] + "<br>");
    }

</script>

 

 


문자열2_개념02_문자열비교.html

 

<script>

    /*
        [문제]
            info배열은 학생 정보이다.
            search배열의 내용이 info에 있으면 O, 없으면 X를 출력하시오.
        [정답]
            이민수O
            김철수O
            김상진X
    */

    let info = ["김철수", "이민수", "유영희", "이민정", "조아라"];
    let search = ["이민수", "김철수", "김상진"];

    for(let i=0; i<search.length; i++) {
       
        let check = false;
        for(let j=0; j<info.length; j++) {
            if(search[i] == info[j]) {
                check = true;
                break;
            }
        }

        let result = search[i];
        if(check) {
            result += "O<br>";
        } else {
            result += "X<br>";
        }
        document.write(result);
    }

</script>

 

 


문자열2_개념03_암호순환만들기.html

 

<script>

    /*
        [문제]
            철수는 비밀번호는 아래와 같다.
            철수는 비밀번호를 보호하기 위해 비밀번호 순환을 3번 반복했다.
            순환이란, 글자를 한칸씩 앞으로 밀고 맨 앞의 글자는 뒤로 붙이는 걸 말한다.
            철수가 만든 비밀번호를 만들어보시오.
        [예시]
            qwer1234
            wer1234q
            er1234qw
            r1234qwe
        [정답]
            r1234qwe    
    */

    let password = "qwer1234";
    for(let j = 0; j < 3; j++){
    let temp = password[0];
    let newpassword = "";
    for(let i = 1; i < password.length; i ++){
        newpassword+= password[i];
    }
    newpassword += temp;
    document.write(newpassword + "<br>");
    password = newpassword;
}
document.write("<br>");
document.write("정답 = " + password);

</script>

 

 


문자열2_문제01_수강취소.html

 

<script>

    /*
        [문제]
            regist배열은 수강 신청을 신청한 학생명단이다.
            cancel배열은 수강 철회를 신청한 학생명단이다.
            수강신청을 한 학생들을 lastRegist에 저장 후 출력하시오.    
        [정답]
            lastRegist = [김철민, 오사랑, 김밥집, 박대한]
    */

    let regist = ["김철민", "이민정", "오사랑", "최면술", "김밥집", "박대한","조정민"];
    let cancel = ["이민정", "최면술", "조정민"];

    let lastRegist = [];

    for(let i = 0; i < regist.length; i++){
        let check = false;
        for(let j = 0; j < cancel.length; j++){
            if(regist[i] == cancel[j]){
                check = true;
                break;
            }
        }
        if(check == false) lastRegist.push(regist[i])
    }
document.write("lastRegist = " + lastRegist + "<br>");
</script>

 

 


문자열2_문제02_끝말잇기게임.html

 

<script>

    /*
        [문제]
            아래 game배열은 철수와 민수가 서로 끝말잇기를 한 결과이다.
            끝말 잇기가 틀린 단어를 출력하시오.

            자전거 - 거미 : 정답
            거미 - 미용실 : 정답
            미용실 - 실업자 : 정답
            실업자 - 자석 : 정답
            자석 - 서유기 : 오답
            서유기 - 기러기 : 정답
        [정답]
            서유기
    */

    let game = ["자전거", "거미", "미용실", "실업자", "자석", "서유기", "기러기"];
   
    for(let i = 0; i < game.length - 1; i++){
        document.write(`${game[i]} - ${game[i + 1]} : `)
        if(game[i][game[i].length - 1] == game[i + 1][0]) document.write("정답<br>");
        else document.write("오답<br>");
    }
</script>

 

 


문자열2_문제03_암호순환풀기.html

 

<script>

    /*
        [문제]
            철수는 비밀번호는 아래와 같다.
            철수는 비밀번호를 보호하기 위해 비밀번호 순환을 3번 반복했다.
            순환이란, 글자를 한칸씩 앞으로 밀고 맨 앞의 글자는 뒤로 붙이는 걸 말한다.
            철수가 만든 비밀번호를 풀어 원래대로 비밀번호를 복원하시오.
        [정답]
            qwer1234    
    */

    let password = "r1234qwe";

    for(let i = 0 ; i < 3; i++){
        let rs = "";
        let temp = password[password.length - 1];
        rs += temp;
        for(let j = 0; j < password.length - 1; j++){
            rs += password[j];
        }
        password = rs;
    }
    document.write("password = " + password +"<br>");
   
</script>

 

 


문자열2_문제04_영어단어게임.html

 

<script>

    /*
        [문제]
            철수는 영어단어 타자 게임을 만들고 있다.
            한 단어씩 출력하는데 그냥 출력하면 재미없기 때문에
            랜덤 위치에 글자 대신 * 을 한 개 출력한다.
            타자 게임을 구현을 위한 화면을 출력하시오.
        [예시]
            ja*a
            pytho*
            c+*
            n*de
            *avascript    
    */

    let wordList = ["java", "python", "c++", "node", "javascript"];

    for(let i = 0; i < wordList.length; i ++){
        let r = Math.floor(Math.random() * wordList[i].length);
        for(let j = 0; j < wordList[i].length; j++){
            if(j == r){
                document.write("*");
            }else document.write(wordList[i][j]);
        }
        document.write("<br>");
    }

</script>