見出し画像

基礎力を鍛える

ITパスポートやReactなど勉強をしてきましたが、
やはり私にはプログラミングの基礎力、アウトプット力が必要だと気付かされました💦

これまでインプットの勉強をひたすらしてきたので
実践力をつけるにはアウトプット力が必要であることを
実務で痛感…

最近はpaizaの問題集で
Reactの前にまずはJavaScriptで基礎力の底上げを図ろうと頑張っています!

記憶にも記録にも残しておきたい内容だけピックアップして
書いていこうと思います。


 正の整数 N が与えられます。
 1 ~ N の整数を 1 から順に改行区切りで出力してください。

私の回答はこちら。

const N = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");

// console.log(N);

for(let i = 1; i <= N; i++){
    console.log(i);
}

標準入力はある程度で型を覚えるしかないので1行目は
trim とsplitがなんであるかわかっておけばOK。

問題は出力の時に自分で頭を捻って、どうすれば答えにたどりつくか考える過程ですね。

このあと解いたFizzBuzz問題という有名なやつも、これと同じような
繰り返しと条件分岐の考え方に基づいて書くことができますね。


仕事の日の朝と今日含めて3日くらいでDランクレベルアップメニュー、終了!

さぁ次の段階、Cランクレベルアップ問題集に行きます!

たくさん解くぞ!

整数 n が与えられるので、 n 回、改行区切りで paiza と出力してください。

const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
// console.log(lines);
lines.forEach(function(n){
    // console.log(n);
    for (var i = 1; i <= n; i++) {
        console.log('paiza');
    }
});

少しずつ考える機序ができてきた気がします⭐️
実はこの答えを出す直前、for文をforEachの外で書いていました。

しかし、それではforEach内で使っている変数nを使うことができない…
そう気づいて上記のようなコードに至りました!

3ヶ月前はできなかっただろうな💦

 整数 n と n 個の整数 a_1, ..., a_n が改行区切りで与えられるので、
a_1, ..., a_n を与えられた順に、改行区切りで出力してください。

同じ感じで、こちらも。

私の回答はこちら。

const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
// console.log(lines);
for (var i = 1; i < lines.length; i++) {
    console.log(lines[i]);
}

3ヶ月前までとの違いは、
少しずつデバッグをして、何が出されるか。
文字列か、配列か。
それがわかったら
どうすれば回答に近づけるか、手段を選択。

このあともどんどん解く!

 整数 n と n 個の数 a_1, ..., a_n が改行区切りで与えられます。
 与えられた a_1, ..., a_n の中で最も大きい数を出力してください。

const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
// console.log(lines);
const result = Math.max(...lines);
console.log(result);

調べたのは配列の中の最大値ってどう出すんだ?ってとこ。
こちらのサイトにはよくお世話になってます。

数 n が与えられるので、n 回、半角スペース区切りで paiza と出力してください。


const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
// console.log(lines);
let result = '';
lines.forEach(function(n){
    // console.log(n);
     const count = parseInt(n);
    //  console.log(count);
    for (var i = 1; i <= count; i++) {
        result += 'paiza' + ' ';
    }
});
result = result.trim();
console.log(result);

少し骨が折れましたw

途中止まってしまったのは、
・文字列を次々新しく作っていくための変数を用意できなかった
・インクリメントの考え方をいかせなかった
・最後の半角スペースを取り除くためのメソッドの使い方

今日はここまでにして最近行けてなかったジムにいってきます!

駆け出しエンジニアなっちゃんの亀さんのような成長をあたたかく見守ってくださるとうれしいです。 自己研鑽に拍車をかけたいと思います!