[programmer 1]xのn個の数字
10378 ワード
問題の説明
関数解は、整数xと自然数nを含むリストを返さなければなりません.xからxで増加するnの数字です.次の制限条件を見て、条件を満たす関数、解を完成してください.
せいげんじょうけん
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])
:指定した関数を呼び出した結果をアレイ内の各要素に集約し、新しいアレイを返します.
callback
新しいアレイ要素の関数を生成します.3つの引数があります.
currentValue
処理する現在の要素.
index ; Optional
処理する現在の要素のインデックス.
array ; Optional
map()の配列を呼び出します.
thisArg ; Optional
コールバックを実行するときに使用する値.
✔戻り値
配列内の各要素に対して実行されるcallback結果の新しい配列.
// 문제에서 적용
map((v, i) => (i + 1) * v) // 화살표 표현식으로 map 사용
// 화살표 표현식 사용법
배열.map((요소, 인덱스, 배열) => { return 요소 });
リファレンスReference
この問題について([programmer 1]xのn個の数字), 我々は、より多くの情報をここで見つけました https://velog.io/@parkksss/coding-test-programmers-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol