okinawa

IT勉強メモ

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

React基礎

書き途中。 重要部分の抜粋 参考サイト サーバー起動方法の忘れ用メモ JavaScript基本 ES modulesは別ファイルの読み込み オブジェクト、プロパティとは メソッドと関数の違い コールバック関数 map filter 分割代入 Promise(非同期処理)とは? Promiseでの…

DockerでJava・Apatche・Tomcat・MySQL環境を構築

参考サイト 大まかな流れ Apache(httpd)とTomcatの連携 TomcatとMySQLの接続 Dockerイメージ・コンテナ用のファイル作成 docker-compose.ymlの作成 Dockerfileの作成 Javaプロジェクト作成 docker compose実行 構成図 参考サイト ここらへんのサイトを眺めな…

【Java】 WSL上のDocker内のMySQLにホストマシンから接続する方法

ポイント ホストPCでMySQLのjarファイルを準備 MySQLのDockerコンテナ作成 ホスト側のWorkBenchから接続確認 WSLのIPアドレスを調べる JavaからMySQLに接続テスト 接続イメージ ポイント WSLがIPアドレスを持っているので、HostNameをWSLのIPアドレスにする…

Dockerの基本

参考書籍 参考サイト集 docker-compose.ymlの参考サイト Dockerfileの参考サイト Dockerコマンド一覧の参考サイト Docker Network(コンテナ間通信)の参考サイト Dev Container参考サイト サーバは遠隔操作できるPC 動作環境 カーネルとは ディストリビュー…

初歩英語でコミュニケーション2

初めて放送大学の面接授業を受けた。 生徒同士でクイズ形式で問題を出すのは面白いし、勉強になった。 発音は対面で聞くのが一番だなあ。 とても良かったので、今後も面接授業を受けたいと思いつつ、土日が完全に潰れるのはつらくて悩ましい。 発音 文法 動…

設計メモ

IPAの設計ガイドブックを読んだので、設計時の注意事項を書いてみた。 参考 書き方サンプル 文字列処理 半角カタカナ・全角カタカナ混在(DB) 数値処理 小数点処理 金額処理 日付 ファイル・ディレクトリ CSV PDF マスタテーブル 参考 IPA。障害未然防止のた…

ダイクストラ法

放送大学の問題解決の数理で学んだアルゴリズムの覚書。 ダイクストラ法とは 計算量 処理概要 ソースコード 定式化 定式化例題 参考 ダイクストラ法とは 2頂点間の最短距離を求める。 重みがマイナスだと使えない。 計算量 O(頂点数2) (オリジナルの場合) …

座標圧縮

座標圧縮とは ソースコード 例題 参考サイト 座標圧縮とは 値が何番目に小さいかをナンバリングする。 例えば、下記のX座標が何番目に小さいかを知りたい時に使う。 元の並び順を維持したままいける。 X = [8, 50, 33, 33, 33, 12, 1, 777]#1 4 3 3 3 2 0 5 …

動的計画法

まだ、初歩的な部分に触れただけなので追記したい。 動的計画法とは 自分の理解 例題 例題の解答コード 参考サイト 動的計画法とは 動的計画法(どうてきけいかくほう、英: Dynamic Programming, DP)は、計算機科学の分野において、アルゴリズムの分類の1つ…

【Python】cmp_to_keyでソートの実装

cmp_to_keyの実装 例題 参考サイト cmp_to_keyの実装 比較対象の2つの値を引数として、第一引数が第二引数よりも小さければ負の値、大きければ正の値、等しければ0を返すように実装します。 from functools import cmp_to_key def compare(arg1, arg2): #数…

幅優先探索&最短経路復元&距離計測

幅優先探索(BFS)とは 使い所 ソースコード 参考サイト 例題 幅優先探索(BFS)とは 幅優先探索とは、グラフや木構造を探索するためのアルゴリズムの一つで、探索を開始する頂点から近い順に探索する方式。 幅優先探索(BFS / 横型探索)とは - 意味をわか…

bit全探索【Java,Python】

理解するのに苦労したので、忘れないようにメモ。 使い所 参考サイト Java Python 使い所 選択する or 選択しないの2択を組み合わせ全探索するとき。 参考サイト qiita.com algo-method.com Java 「1 << N」 は2のN乗。 「S & (1 << i))」は整数Sを2進数と…

グラフ典型問題

グラフ問題の考察や解法でよく使いそうなものをメモ。 連結成分の個数を数える サンプルコード(無向グラフ) 例題 参考サイト 閉路検出 参考サイト 木構造 頂点の深さ計測 参考サイト 最短経路&経路復元&距離計測 連結成分の個数を数える 全ての頂点から…

AtCoder Beginner Contest 292

C問題にめちゃくちゃ苦戦したのでメモ。 atcoder.jp 解法 解答コード 参考サイト 解法 約数列挙問題。 文字起こしがしんどいので、画像で許して。 とりあえず「ABの約数の個数×CDの約数の個数」が答え。 思考過程 解けたとき気持ちよかったw 解答コード # N…

約数列挙

約数の数を知りたいなあ、という時にすぐ使えるようにメモ。 ソースコード 参考サイト ソースコード # N の約数をすべて求める関数 def calc_divisors(N): # 答えを表す集合 res = [] # 各整数 i が N の約数かどうかを調べる for i in range(1, N + 1): # √…

Python学習メモ

AtCoderで試しにPythonを使ってみることにしたのでメモを。 主に競技プログラミングで必要になることを箇条書き。 標準出力 標準入力の受け取り 内包表記 演算子 データ型 listの操作一覧 dict型(連想配列)の操作 defaultdict set(集合)の操作 優先度付き…

多重for文・順列・組み合わせをPythonで書く

itertoolsで全部いける! Javaバージョン itertoolsで全部いける! import itertools # 直積 ネストしたforループと同じ 0~3の数字の全通り。SQLで言うところのCROSS JOIN # repeat=for文のネスト数と同じ。つまり数列の桁数。3*3*3=27 for product in iter…

二分探索

二分探索とは 理解のポイント 自力実装 条件を満たす最小の値を求める 条件を満たす最大の値を求める 参考サイト bisect関数 番兵の活用方法 例題 二分探索とは 二分探索とは、データ検索アルゴリズムの一つで、ソート(整列)済みのデータ群の探索範囲を半…

Mapで集計してからソートする系問題(AtCoder)

けっこうよく見るタイプなので、メモとして色々な解き方を書いておく。 ・問題文 1~Nまでの数字が3回出現する。 2回目に出現するのが早い順に出力する問題。 例:1 3 3 3 2 2 1 1 2 ←1~3までの数字が3回ずつ出現。 atcoder.jp 解き方1:答えがわかっ…

ユークリッドの互除法

放送大学の授業でユークリッドの互除法を見て、その後にちょうとAtCoderでユークリッドの互除法を使う問題に出会った。 ということで備忘録として。 atcoder.jp ユークリッドの互除法とは プログラム(引き算バージョン) プログラム2(余りバージョン) gc…

【初心者向け】Notionでタグライブラリを作る

タグライブラリが便利らしいので、Notionに初挑戦してみたら大変だったので、自分と同じような誰かのためになればと。 参考サイト タグライブラリの作り方 新しいタグはTags Databaseからでも、Master Notesからでも作れる。 タグライブラリを作ると何が嬉し…

多重for文を再帰関数で書く

この問題が解けなかったので、再帰関数を勉強した。⇩ atcoder.jp 参考サイト 多重for文 再帰関数の使い所 全探索・順列全探索・組合せ全探索を再帰関数で書いてみた 処理の流れイメージ 再帰処理のスレッドとは? ABC302-C Almost Equalの解答 組合せ全探索…

深さ優先探索のお勉強

深さ優先探索を理解するために、写経したり実装したりしてみた。 参考サイト 深さ優先探索とは 自分なりの理解 計算量 使い所 グラフを隣接リスト表現で作ってみる 木構造を深さ優先探索する 再帰関数バージョン 入力値 再帰関数の面白いところ ノード0とノ…

AtCoder Beginner Contest 301

記念すべき初rated参加。 コンテスト参加は2回めだけど前回はDDos攻撃でunratedになった。 A - Overall Winner B - Fill the Gaps 参考解答 C - AtCoder Cards atcoder.jp A - Overall Winner ・改善点 過半数勝利を先にどっちがするか判定 ⇨ 同点なら先に過…

無課金ChatGPTにAtCoderの解説頼んでみた

最初にまとめ 質問文 ChatGPTの回答 追加の質問 追加の回答 問題文&ソースコードの引用元 AtCoderの解説読んでもよくわからない所があったので、ChatGPTに質問してみた。 最初にまとめ 無課金でもChatGPTさんは強かった。 わからない部分を追加で質問できる…

テーブル結合でハマったこと

LEFT OUTER JOINで左側にだけ結合条件つけても意味なし 例:テーブル2と3を結合 結合条件を複数テーブルにするときは注意 LEFT OUTER JOINで左側にだけ結合条件つけても意味なし 下記のような左テーブルにしか効かない結合条件しても意味無し。 左側は全て…

論理的思考能力には瞬発型と長考型の2つがあるのでは

瞬発と長考 なんでこんなこと考えたか 自分はどっちタイプか 羽生先生の本に書いてあったこと 参考 瞬発と長考 瞬発:ほとんど考えることなくぱっと答えが思い浮かぶ。 長考:じっくりと筋道立てて答えを導き出す。 なんでこんなこと考えたか 仕事してるとえ…

LeetCodeその4 Top K Frequent

自分の解答 自分の解答2 模範解答 学んだこと int配列の中から出現数が最も多い要素をk個取り出す問題 自分の解答 /** 自分の解答 Accepted! * Map<数値, 出現数>に一旦格納してから * Map<出現数, 数値リスト>に格納し直す * 出現数でソートして高出現数順…

NOT EXISTSとDISTINCTでハマった話

大して難しいことではなかったのにハマったので備忘録。 やりたかったこと テーブル結合の結果をイメージできてなかった DISTINCTを勘違いしていた EXISTSを使い慣れていなかった 正解 感想 やりたかったこと 投入データでテーブルを更新 ↓ 投入データに含ま…

LeetCodeその3:TwoSum

自分の解答 自分の解答2 模範解答 学んだこと 自分の解答 int配列の中から2つを取り出し、足した値がTargetと同じになる組み合わせを探す問題。 2重ループ。Accept public int[] twoSum(int[] nums, int target) { int[] answer = new int[2]; for(int i =…