ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #AIL_23.11.07 // Programmers_문자 반복 출력하기
    AIL( Algorithm I Learned) 2023. 11. 7. 22:35

    ## AIL_문자 반복 출력하기

    ***문제 설명

    문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.


    ***제한사항

    2 ≤ my_string 길이 ≤ 5
    2 ≤ n ≤ 10
    "my_string"은 영어 대소문자로 이루어져 있습니다.


    ***입출력 예

    my_string n result
    "hello" 3 "hhheeellllllooo"

    ***입출력 예 설명

    입출력 예 #1
    "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.

    ## solution.JavaScript

    1. 문제의 접근 방식

    주어진 문제는 문자열 `my_string`과 정수 `n`이 주어지고, `my_string`의 각 문자를 `n`번씩 반복한 문자열을 반환하는 문제입니다. 주어진 제한사항에 따라 문자열과 `n`값이 주어진다고 가정할 수 있습니다. 

     

    1) 빈 문자열 `answer`를 초기화합니다. 이 변수는 최종 결과를 저장할 문자열입니다.  

     

    2) 주어진 문자열 `my_string`을 순회하면서 각 문자를  `n`번씩 반복하고 이 결과를 `answer`에 추가합니다. 

     

    3) 문자열을 순회하면서 각 문자를 `repeat` 메서드를 사용하여 `n`번 반복한 문자열을 생성하고 이를 `answer`에 추가합니다. 

     

    4) 반복문이 종료되면 `answer`에는 원하는 결과가 저장되어 반환됩니다. 


    2. 문제풀이

    function solution(my_string, n) {
        var answer = '';
        
           for (let i=0; i<my_string.length; i++) {
           answer += my_string[i].repeat(n);
       }
        return answer;
    }
    /*
    테스트 1
    입력값 〉	"hello", 3
    기댓값 〉	"hhheeellllllooo"
    */

    3. 다른사람의 문제풀이 및 접근방식 분석

    function solution(my_string, n) {
        var answer = [...my_string].map(v => v.repeat(n)).join("");
        console.log(answer);
        return answer;
    }
    /*
    테스트 1
    입력값 〉	"hello", 3
    기댓값 〉	"hhheeellllllooo"
    */

     

    ***문자 반복 구조분해 할당방법

     

    1)  `my_string`을 문자 배열로 분해합니다. 이렇게 하면 각 문자가 배열의 요소로 들어갑니다. 예를 들어, "hello" 문자열이 입력으로 주어지면 `["h", "e", "l", "l", "0"]로 분해됩니다. 

     

    2) 배열 메서드 `map`을 사용하여 각 문자를 `n`번 반복하는 문자열로 변환합니다. `map` 함수는 각 요소에 대해 지정된 함수를 적용하고 그 결과를 새로운 배열에 저장합니다. 따라서 각 문자는 `repeat` 메서드를 사용하여 `n`번 반복됩니다. 

     

    3) `join` 메서드를 사용하여 배열의 모든 요소를 하나의 문자열로 결합합니다. 디폴트로 요소 사이에는 아무 문자도 추가되지 않고 연결됩니다. 따라서 결과 문자열은 각 문자를 `n`번 반복한 것입니다. 

     

    4) 마지막으로, `console.log(answer)`를 통해 결과 문자열을 출력하고 결과 문자열을 반환합니다. 

     

    위에 코드는 제가 작성한 코드보다 더 간결하게 작성되었으며, 배열의 메소드와 문자열 메서드를 사용하여 문제를 해결합니다. 코드의 핵심은 각 문자를 `n`번 반복하고 그 결과를 합치는 것입니다. 

     

     

     

     


    # +++구조 분해 할당방법이란? 

    구조 분해 할당은 배열 또는 객체에서 값을 추출하여 변수에 할당하는 JavaScript의 기능입니다. 코드에서 `my_string` 문자열을 배열로 분해하는 부분을 잠시 살펴보겠습니다. 

    var answer = [...my_string]

     

    `[...my_string]` 표현은 `my_string` 문자열을 문자 배열로 분해합니다. `...` 연산자는 배열 또는 문자열을 개별 요소로 분해합니다. 따라서 "hello" 문자열은 `["h", "e", "l", "l", "o"]로 분해됩니다. 그 다음 이 배열은 `answer` 변수에 할당됩니다. 

     

    이렇게 구조 분해 할당을 사용하면 문자열의 각 문자를 배열 요소로 쉽게 추출할 수 있습니다. 

     

    # +++`repeat` 메서드

    `repeat` 메서드는 문자열을 주어진 횟수만큼 반복하여 새로운 문자열을 생성합니다. 이 메서드는 문자열 객체의 메서드로 사용됩니다. 

    var originalString = "hello";
    var repeatedString = originalString.repeat(3); // "hellohellohello"

     

    위의 코드에서 `repeat(3)`은 문자열 "hello"를 3번 반복하여 "hello hello hello "를 반환합니다.

     

    # +++`join` 메서드

    `join` 메서드는 배열의 모든 요소를 하나의 문자열로 결합하는데 사용됩니다. 이 메서드는 배열 객체의 메서드로 사용됩니다. 

    var array = ["h", "e", "l", "l", "o"];
    var concatenatedString = array.join(""); // "hello"

     

    `join` 메서드는 매개변수로 구분자를 받을 수 있는데, 기본값은 빈 문자열 `""`입니다. 디폴트로 요소 사이에 아무 구분자도 추가되지 않고 연결됩니다. 위의 예에서는 모든 배열 요소를 빈 문자열을 사용하여 연결하였고 "hello"란 문자열을 반환합니다.

     

    따라서, 주어진 코드에서 `map` 메서드를 사용하여 문자열을 `repeat`메서드를 통해 `n`번 반복한 후, `join` 메서드를 사용하여 각 문자열을 연결하여 하나의 문자열로 만듭니다. 

    #구조 분해 할당방법/`repeat` 메서드/`join` 메서드 앞으로 자주볼 예정이니 잘 기억하자!

     

Designed by Tistory.