アルゴリズムとデータ構造

配列と連想配列 ~会津オンラインALDS1_4Cを通して~

What 会津オンラインの以下の問題を解きます。 onlinejudge.u-aizu.ac.jp Solution 配列で書く方法を真っ先に思いついたので、それで実装してみました。 function main(lines) { const input = lines.split('\n').slice(1) const n = input.length let str =…

全探索 (AtCoder B問題)

What 全探索は、全ての組み合わせを逐一、条件と一致するか確認するアルゴリズムです。 ここの問題を解いていく過程で学んだことや解法を記録しておきます。 qiita.com Results 全て列挙しなくても解ける問題が多いと感じました。 以下、それぞれの問題に関…

for of vs for in

What for文におけるofとinの違い for (let i = 0; i < xxx.length; i++)で書き直すことで、理解を深める。 Results まず、用語の導入として、プロパティ名とプロパティを簡単に示します。 ハッシュでは、{プロパティ名: プロパティ}となります。 配列の場合…

/[^\w]/g != new RegExp('[^\\w]', 'g')

What 正規表現の作り方について、理解に手間取ったので、まとめておきます。 文字列 Hi Bob!!をHiBobとして表示したい (空白や特殊文字を排除したい) 場合、以下の2通りの方法があります。 const word = 'Hi Bob!!'; reg1 = /[^\w]/g; regResult1 = word.rep…

配列とハッシュ, 定数と変数, ==と===の違い

What JavaScriptを用いて、アルゴリズムとデータ構造について学びます。 以下のサイトで打ちながら学ぶと理解が深まります。 https://stephengrider.github.io/JSPlaygrounds/ 定数と変数 上書きできるか、できないかが異なります。 変数 (var, let) を使う…