[programmer 1]xのn個の数字


問題の説明


関数解は、整数xと自然数nを含むリストを返さなければなりません.xからxで増加するnの数字です.次の制限条件を見て、条件を満たす関数、解を完成してください.

せいげんじょうけん

  • xは、−1000000または1000000以下の整数である.
  • nは1000以下の自然数です.
  • My solution

    // 💡 문제 분석 💡
    // 입력받는 매개변수 2개 : 정수 x, 자연수 n
    // x, x+x, x+x+x, ... n개 요소가 있는 리스트  
    // [ (x\*1), (x\*2), (x\*3),..., (x*n)] 이런식의 리스트가 완성되면 되겠다!  
        
    
    javascript
    function solution(x, n) {
        var answer = [];		// 리스트 담을 변수 선언
        for (let i = 1; i < n+1; i++) {		// for문 : 1부터 n까지
            answer.push(x*i)	// push 메서드를 통해 x에 i를 곱한 값 배열에 추가 
        }						// for문이 한번 돌때마다 리스트의 요소가 하나씩 채워짐
        return answer;
    }

    Others

    function solution(x, n) {
        return Array(n).fill(x).map((v, i) => (i + 1) * v)
    }
    ほほほ、私は簡単に解いて、他の人の解くことを見ました
    シンプルなコードが迎えてくれました.
    私が初めてコードテストの練習問題をしたとき、プログラマーが他の人の問題を解くのを見たら
    短いコードがあるに違いない...
    まず分析します.
    感覚で?
    Array(n).fill(x):n個の長さを持つ配列を作成し、すべての要素をxで埋めます.
    map():各要素の値を現在の要素*インデックス+1のストリームとして表す
    それぞれの方法について、以下でさらに詳しく勉強してください.

    Study


    Push()メソッド


    arr.push(element1[, ...[, elementN]])
    :配列の最後に新しい要素を追加し、変更した配列の長さを返します.
    ✔パラメータ
    elementN
    アレイの最後に追加する要素.
    ✔戻り値
    配列の新しい長さプロパティを呼び出します.
    // 위의 코드 for문 안에서
    console.log(answer.push(x*i))    // 실행시 1,2,3,4,5 가 각각 출력(push 한 후의 길이)

    Array()作成者

    [element0, element1, ..., elementN]
    new Array(element0, element1[, ...[, elementN]])
    new Array(arrayLength)
    :新しいArrayオブジェクトを作成します.
    ✔パラメータ
    elementN
    JavaScript配列を初期化するときに入力する要素.1つのアイテムのみで、そのアイテムのデータ型が数値の場合は、次のarrayLengthパラメータとみなされます.
    arrayLength
    Array作成者に指定された一意のパラメータが0~2^32-1以下の整数の場合、長さ属性がこの値の新しいJavaScript配列が作成されます.(注:このようにして作成された配列には、実際のundefinedを塗りつぶすのではなくarrayLengthと同じ空きスロットがあります.)値が範囲外または非整数の場合、RangeErrorが表示されます.
    // 단일 매개변수 배열 생성자
    let fruits = new Array(2)
    
    console.log(fruits.length) // 2
    console.log(fruits[0])     // undefined

    fill()メソッド


    arr.fill(value[, start[, end]])
    :配列の開始インデックスから終了インデックスまで、静的値で埋め込まれます.
    ✔パラメータ
    value
    配列の値を入力します.
    start ; Optional
    初期インデックス、既定値は0です.
    負の値の場合、開始インデックスはlength+startです.
    end ; Optional
    インデックスを終了します.デフォルトはthisです.length.
    負の値の場合、終了インデックスはlength+endです.
    ✔戻り値
    位相変化配列
    Array(data.length).fill(null); // n개의 length를 가진 배열을 모두 null로 채우기
    
    // 문제에서 적용
    Array(n).fill(x) // n개의 length를 가진 배열을 모두 x로 채우기

    map()メソッド


    arr.map(callback(currentValue[, index[, array]])[, thisArg])
    :指定した関数を呼び出した結果をアレイ内の各要素に集約し、新しいアレイを返します.
  • の繰り返し文では、配列内の要素が1対1でペアリングされます.定義した関数をメソッドのパラメータとして入れればよい.
  • ✔パラメータ
    callback
    新しいアレイ要素の関数を生成します.3つの引数があります.
    currentValue
    処理する現在の要素.
    index ; Optional
    処理する現在の要素のインデックス.
    array ; Optional
    map()の配列を呼び出します.
    thisArg ; Optional
    コールバックを実行するときに使用する値.
    ✔戻り値
    配列内の各要素に対して実行されるcallback結果の新しい配列.
    // 문제에서 적용
    map((v, i) => (i + 1) * v) // 화살표 표현식으로 map 사용
    
    // 화살표 표현식 사용법
    배열.map((요소, 인덱스, 배열) => { return 요소 });
    
    リファレンス
  • https://programmers.co.kr/
  • https://developer.mozilla.org/ko/docs/Web/JavaScript
  • https://www.zerocho.com/category/JavaScript/post/5acafb05f24445001b8d796d