2020-01-01から1年間の記事一覧

JavaScriptでNullを上手に扱う

近年、Null安全という言葉と共に、各言語でNullを安全に扱うための構文が一般的になってきています。 こちらの記事にあるように、この流れはJavaScriptに限った話ではありません。 今回はJavaScriptに限った話になりますが、Nullを扱う際に便利な構文をいく…

ABC179 復習

A - Plural Form 末尾の文字に従って分岐をします。 s = input() if s[-1] == 's': print(s + 'es') else: print(s + 's') B - Go to Jail タプルなどで同時に投げたサイコロの目を保持しておきます。 3回連続の判定は変数なり、現在のindexから2つ先までも…

ラムダ

ラムダの書き方や注意点を学びます。 はじめに ラムダは、リストの操作等でよく使用されることが多いため、リストに対しての操作を例にとって解説していきます。以下は、リストに格納するPersonオブジェクトです。 名前、年齢、性別を表すプロパティを持つ、…

拡張

Kotlinの拡張について。 拡張とは ある既存のクラスに新しくメソッドやプロパティなどを定義する方法です。 拡張関数 fun main(args: Array<String>) { //拡張関数の例:既存のIntクラスにisOddメソッドを追加する fun Int.isOdd(): Boolean = (this % 2 != 0) 5.isO</string>…

data class

Kotlinのデータクラスです。 はじめのまとめ Kotlinに、値を表すクラスを作成する際に便利な機能のひとつとして、data classがあります。 data classを用いると、そのclassにはコンパイラ側で以下の3つのメソッドが実装されます。 1. toString 2. equals 3. …

初めましてKotlin

はじめに Kotlinの基本的な文法等を学びます。 取り扱っていないトピックも多々あるかと思いますが、最低限持っていたい知識をまとめました。 また、所々Javaとの比較も織り交ぜております。 はじめに Hello, World! 変数 関数 分岐と繰り返し 分岐 if when …

Reactで勉強すること

こんなTweetが流れてきたので、ひとつひとつできるように勉強。 Reactの実務でここら辺が必修科目かなってのをあげてくまる・React・Redux・React Router・redux-thunk redux-saga・hooks・context API・TypeScript・jest・enzyme・Cypress or TestCafe・esl…

フック

React16.8から導入されたフックの基本を学びます。 概要 簡単に言うと、関数型のコンポーネントにstateを持たせる仕組みのことです。以下、公式ドキュメントからの引用です。 フックとは、関数コンポーネントに state やライフサイクルといった React の機能…

ABC176 復習

C問題までは簡単なんだけどなぁ・・。 A - Takoyaki 単純に、全体で作成したい個数を、一回あたりの個数で割った数に時間をかければ良いだけです。 余りが出る場合は1回分の時間を足すことを忘れずに。 n, x, t = map(int, input().split()) ans = n // x *…

採用基準

採用基準作者:伊賀 泰代発売日: 2013/01/28メディア: Kindle版 まとめ グローバルに活躍するために必要なのは地頭や論理的思考能力よりもリーダーシップが必要であり、リーダーシップとは役職や年齢ではなく全ての個人が発揮すべき能力であり、求められるも…

ABC175 復習

1ヶ月ぶりくらいに挑戦しました。 結果はC問題までAC・・・。 A - Rainy Season 単純に文字数を数えるだけではWAになってしまうことに注意します。 連続してRが出る回数が答えとなるため、R以外が出現した場合はカウントを初期化するなどすればOKですね。 …

modal

JavaScriptとCSSを使って、モーダルウィンドウを作成します。 実現方法は至って単純で、なんらかのボタンが押されたらモーダルのdisplay属性をnoneにしたりblockにしたりするだけです。 .modal { display: none; position: fixed; z-index: 1; left: 0; top:…

ctrl + Enterで処理を実行する

はじめに ctrl + Enterに限らず、特定のキーを押下した際になんらかのイベントを発火させる方法です。 ソースコード document.addEventListener('keydown', (e)=>{ if (e.ctrlKey && e.keyCode == 13) { alert('ctrl and enter!'); } }) 一応HTMLも。 <html> <head> <title>ctr</title></head></html>…

warning: Can't call setState on a component that is not yet mounted

React開発中に出現したワーニングを対処しました。 ワーニングなのでそこまでクリティカルではないと思いますが備忘として残します。 調査 ワーニングメッセージを直訳すると、 まだマウントされていないコンポーネントでsetState()は呼び出すことができませ…

localStorage

JavaScriptで使用できるLocalStorageについて学びます。 LocalStorageとは ブラウザにデータを保存できる仕組みです。 公式ドキュメントはこちらです。 使い方 localStorageへデータを保存する //例 localStorage.setItem('key', value); localStorageへデー…

アロー関数

アロー関数について勉強します。 基本の書き方 まずはおなじみの、公式サイトからの引用です。 アロー関数式は、より短く記述できる、通常の function 式の代替構文です。また、this, arguments, super, new.target を束縛しません。アロー関数式は、メソッ…

bind()

Reactを学習中なのですが、たびたび出現するbind()メソッドがよくわからなかったため、メモ。 はじめに 結論を言ってしまうと、bind()メソッドを理解するためにはJavaScriptにおけるthisの挙動の理解が必要かもしれません。ひとまず、JavaScriptではthisの扱…

input要素を中央揃えにする

結論 inputタグをdivタグなどで囲む。 その上で、divタグに対してtext-align:centerを指定する。 .center { text-align:center; } <div class='center'> <input type='text'></input> </div> 成り行き input要素に直接text-align:centerを指定しても効かなかったため。 (以下のCSSではテキストボックスが親要素に…

React勉強します

近年のフロントエンド全くわからんのです。 公式ページにチュートリアルもありますので、まずはここからですね。

CSSで色を設定する方法

CSS

CSSで背景色などの色を指定する方法がいろいろあるため、まとめました。 以下、4種類の方法を記載していますが、全て同じ色となります。 色名を指定する 16進数で指定する rgbで指定する hslで指定する 色名を指定する .button1 { background: aqua; } CSS…

ABC173 復習

A - Payment 少し考える必要があるか・・? 答えは必ず1000より小さい数になり、かつ支払いに使用できるのが1000の倍数円なので、1000の剰余を使用すれば良さそう。 回答は以下。 n = int(input()) if n % 1000 == 0: print(0) else: print(1000 - (n % 1000…

ランレングス圧縮

ランレングス圧縮は、可逆性の圧縮アルゴリズムです。 具体的な圧縮方法は、ある文字が連続して何回出ているか、を記録していく方法です。 例を挙げると、「abbccc」という文字列があった場合、「a1b2c3」というように、文字+連続した回数を繰り返すことで…

ABC172 復習

C問題が解けず・・。 A - Calc こちらは問題文の通りに実装すればよいですね。 a = int(input()) print(a + a ** 2 + a ** 3) B - Minor Change 問題を言い換えると、文字列SとTについて、異なる文字はいくつあるかということですね。 制約上、SとTは同じ長…

ABC171 復習

ABC171の復習です。 結果だけ先に書くと、A、B、Dの3問正解でした。 A - αlphabet A問題はいつも通り、簡単なif文が書ければ解けますね。 また、小文字であるかどうか、はpythonではislowerを使用することで簡単に求めることができます。ほかの言語でもおそ…

pythonでpriority_queue(優先度付きキュー)を使う

pythonでpriority_queueを使います。 pythonではheapqとして実装されていますので、使用する場合はheapqをインポートします。 import heapq さて、heapqを使用するメリットですが、大きく2つ、 最小値をO(logN)で取得する 要素をO(logN)で挿入する がありま…

ABC170 復習

今回もC問題までしか解けませんでした。 いつになったらD問題を安定して解けるようになるのやら・・。 というわけで、復習始めます。 A - Five Variables リスト中に含まれる0のインデックス値を出力する問題です。 出力の際には1_indexにすることに気をつけ…

bit全探索

bit全探索について学びます。 bit全探索とは 探索をbitを用いて行うことです。 あるN個のものから、選択する・しないを0か1で表すことで、全てのパターンを列挙することができます。 例えば、N=4のとき、24=16パターンの列挙に、0000〜1111の2進数を用います…

macでJavaの環境構築

はい。macを購入したので、改めてjavaの開発環境を整えようと思います。 参考にしたのはこちら。 qiita.com はい、この手順通りにやれば、macでjava開発環境が手に入ります。

ABC016 C - 友達の友達

今回はこちら。 atcoder.jp グラフ問題ですね。 個人的にはグラフ問題はだいぶ慣れてきた感があります。 問題概要としては、各頂点について、1つの頂点を経てたどりづける頂点がいくつあるかを求める問題です。 ただし、1つの頂点を経てたどり着ける頂点が自…

ABC169 復習

今回はC問題まで解けました。ただ、WAとTLEを合わせて4回出たのが悔しいです。 D問題については、素因数分解について学ぶことができたのでまぁ良しとしましょう。 A - Multiplication 1 掛け算の問題ですね。 単純に入力値をかけ合わせれば答えとなります。 …