' P '

whatever I will forget

Entries from 2020-01-01 to 1 year

Bubble Sort

バブルソートとバケットソートを勘違いしている日々もありました アルゴリズム概要 1つ前の要素と現在の要素を比べて、1つ前の要素の方が大きければswapしていくソート 計算量 とりあえずバブルソートは安定したソートです 注意 if(a[i] < a[i-1]) {の部分は…

Insertion Sort

頭ではわかっていても、コードに落とし込むとなると難しいよなあ... アルゴリズム概要 Insertion(挿入)ソートなので、ソート済み部分にぴったり対象値を挿入するソート方法 もう少し具体的に言うと、小さい値を見つけたらそれよりも大きい値の左側にちゃんと…

B - Billiards 考え方

B - Billiards えっえっ?解説読んでも見ても全く意味不明なんですけど、、 って方他にいないですかね。(いないか) 僕は全くもって意味不明だったのでメモします。 まず、この問題を特には数学2の知識が必要です。 内分点の求め方 詳しくは、下記の動画を…

数学、計算量考慮系 B - Trapezoid Sum

B - Trapezoid Sum Bが解けなかったよ。。というわけで僕みたいなアホにもわかる解説を書いてみる。 計算量考慮しないといけないけど これは数学の公式を覚えてるか、変動する上限下限に対応できるいもす法を知ってるかじゃないとなので、まあいまのレベルじ…

Node.js でサーバーの応答にてhtmlを表示させる方法

下記コードをindex.jsに記述する. 'use strict'; const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' }); res.write( '<html lang="ja"><body><h1>Displaying HTML/h1></body></html>' ); res.end();…

JavaScript Promiseオブジェクトと非同期/同期処理(async, await)

Node.jsでは基本非同期処理が主になっている。 同期処理を行いたい場合もあるけど重い処理を待たせて同期処理を敢えて行う必要はないので、 例えば、データベースから情報を取得する、APIをコールするなどは非同期でやるべき。 重い処理は非同期にしてその内…

Java Equal/HashCode

かなーりふわっとした理解ですが、 自作オブジェクトをequalsで比較する際にequalsをobjectクラスからoverrideした際には、hashcode関数もちゃんとoverrideしないとうまく動かないらしい。 一旦解説は無しで下記Qiitaをポイントすることで備忘録とする。 参考…

Javascript アロー関数

めっちゃいつも混乱することがあるのでメモ まずはアロー関数の書き方 JavaScriptでは、下記がアロー関数になります 普通 const a = function(a,b,c) { // peronperon } アロー関数 const a = (a,b,c) => { // peronperon } 下記は、下記にも記述したけど、…

計算量考慮編(数式の変形)ABC179 C - A x B + C

atcoder.jp うーんこういう問題、絶対解法思いつきませんw 思考の流れ まず全探索ではないことはすぐわかった(Nが106のため、O(N3)になる) なので、A,B,Cの約数列挙かなー? ギブアップ 次に活かしたい点 こういう問題は、下記がポイントかも 式をとりあ…

Javascript JSDocを作るショートカット

VS Codeとかを使っているなら、 /** と書いてenterを押せば、JSDocのコメントが挿入できる。 参照 pleiades.io 頻繁に書くもの @param どんな引数を使うのか @return どんな変数がその関数によって返されるのか

JavaScript map関数

概要 map 関数は、 Array の要素それぞれを、与えられた関数を適用した内容に変換するというもの 使い方 配列の場合 下記のようにすれば、配列の要素が[1,2,3]だった場合、2,4,6になります。 array.map(i => { return i * 2; }); 連想配列の場合 [key, data]…

JavaScript 連想配列のデータをsortする

連想配列にある何かのデータをsortするときのやり方。 前提 例えば、下記連想配列dataMapに、aをキーとして, b,c,numというデータがあるとします。 やりたいこと 各キーが持っているnumの値を、値が大きい順(降順)に並び替えたい const rankingArray = Arr…

JavaScript 連想配列とfor of

概要 連想配列にある値を使って何か計算(変更)し、新しい値としてキーに追加したい場合のやり方。 やり方 まずは、定義した連想配列から取得した値(value)がundefinedの場合、初期化しておく。 その後、条件に当てはまる値があればをmapからgetとした値(va…

メモ化再帰

フィボナッチとかくらいしか、再帰を使ったことないのですが 動的計画法(DP)を勉強中にメモ化再帰、という単語が登場し、こりゃあスゴイ!と思ったのでメモ。 概要 各数字における答えをメモしておく。 再帰関数は同じ値に対する計算を何度も行うので、処…

1000000007系: 式変換

これはまたどこかで使えそうなので記事化 C - Sum of product of pairs 制約のが <= 105 なので、まあ二重ループは使えません、と。 で、どうしたらいいかが全くわからず、なんか累積和っぽいなーと思いつつも結局わかりませんでした。 以前何度か読んだ下記…

CSS 画像(img)にテキスト(p)を重ねたい時

CSS

前提 HTMLは要素が重なることはない。しかしCSSを用いて重ねることができる. 説明画像 左側はpositionを全く使わない場合 右側はpositionを使う場合、そして下記の場合で指定している要素の場所は、ページの左側上部を起点とする やり方 position: relative …

CSS displayプロパティってなんやねん

参考 saruwakakun.com まあ上記を見るのが一番早いですが、、 パッと見る用のメモ displayプロパティに対して設定する値は下記 inline 1.1. 要素を横に並べるが、要素の大きさギリギリまで平べったくなる block 2.1. 要素を縦に並べるが、要素は横いっぱいに…

CSS displayプロパティってなんやねん

CSS

参考 saruwakakun.com まあ上記を見るのが一番早いですが、、 パッと見る用のメモ displayプロパティに対して設定する値は下記 inline 1.1. 要素を横に並べるが、要素の大きさギリギリまで平べったくなる block 2.1. 要素を縦に並べるが、要素は横いっぱいに…

CSSでヘッダーを固定する際

CSS

HTML <header></header> が記述されていることを前提とする CSS header { position: fixed; top: 0; z-index: 10; } 解説 基本的に上記3つはセットで覚えておけばよい。 z-indexはpositonとセットで使う必要がある。 z-indexは10が最大なので、一番上。0が一番下となる。 パワ…

三角形の成立条件

全く持って忘れてましたよね。。 参考 integraldx.info a,b,cの三辺の三角形の場合、 a < b + c, b < a + c, c < a + bが成立していればOK。 かつ、もしaの辺が一番長いとわかっている場合は、a < b + cのみ確認を行えばいいらしい。 問題 atcoder.jp 提出し…

時計の時針と分針からなる角度を求める

数学?算数の問題ですね。。 単純に下記を覚える [時針]1分ごとに変わる角度: 0.5度 (360/12*60) [分針]1分ごとに変わる角度: 6度 (360/60) double hDegree = (h*60+m)*0.5; double mDegree = m*6; double degree = Math.abs(hDegree-mDegree); 参考 dorilu.…

html input/textarea タグ

inputタグ 一行のテキスト入力を受け取る要素。入力欄が表示される <input> </input>は不要 <input type="submit"> 上記のようにすると、入力欄ではなく、送信ボタンのようなものが作成される <input type="submit" value="Submit"> valueを追加すると、Submitと表示されるボタンとなる textareaタグ 複数行のテキスト入力を受け取る要…

php 小クラスから親クラスのconstructorを呼び出すには

php

継承はJavaと同じ書き方でextendsだった parent::_constructと記述すればよい。 親クラスのコンストラクタを呼び出すには class Parent { protected name; public function __construct($name) { $this->name = $name; } } class Child extends Parent { pri…

php クラスプロパティの追加と使用について

php

うーんここらへんはphp独自か クラスプロパティの追加 class Sample { public static count = 0; private number; public function __construct() { $this->number = 10; } } クラスプロパティの使用方法 echo Sample::$count;

mod系

C - Repsept 一応解説でもCにしてはムズイとなってたのでよしとする(?)ダメだけど、、 下記のmodの世界での規則系に気付けるかどうか。 その世界でもn*10+7してmod kした値は単純にn%kした答えと同じになる 単純にn%kした場合、ループの最大回数を何にし…

php echo時の変数出力

php

シングルクオテーションで囲むと変数の値が展開されないようだ どっちかに統一しろよじゃあ...(やばい文句ばっかり言ってるぞw) $var = "aaa"; echo "my name is {$var}"; //my name is aaa echo 'my name is {$var}'; //my name is $var 違い 実行速度に…

php クラス変数へのアクセス

php

もー言語によってアクセス法変える必要あんの?ってちょっと思ってきてしまった class Test { public $name; } $sample = new Test(); $sample->name = "aaa"; echo $sample->name; //aaa クラス変数にアクセスする際、$sample->$nameとしないこと。$は必要…

php foreach

php

普通のarrayの場合 $arr = array(1,2,3,4,5); foreach($arr as $a) { echo $a.'<br>'; } 連想配列の場合 $key =>は省略可能. $a_arr = array( 'a' => 1, 'b' => 2, 'c' => 3 ); foreach($a_arr as $key => $value) { echo $key.':'.$value; }

php arrayの定義

php

ちょっとJavaとかとは違ったのでメモ arrayの定義 $arr = array(1,2,3,4,5); 値をarrayの最後に追加したい場合 $arr[] = 6; 連想配列の定義 $a_arr = array( 'a' => 1, 'b' => 2, 'c' => 3 ); echo $a_arr['a']; //1

php 文字列の連結

php

文字列の連結 .を使うと文字列の連結ができる $smp = `aaa`; echo $smp.`bbb`; 省略も可能 $smp .= `aaa`; echo $smp; echo時の変数展開 $smp = 'aaa'; echo 'this is test with {$smp};