trsing’s diary

勉強、読んだ本、仕事で調べたこととかのメモ。

AtCoder M-SOLUTIONS プロコンオープン参加メモ

A100、B200、C500 こんなん無理やんけ参加しよ 結果 A,BはAC。 Dは解説読んでわかったのでメモ D - Maximum Sum of Minimum 正の整数をソートして とする。 各辺に、2 つの端点に書き込まれた整数のうち小さい方を書き込む。 なので総和は最大でもとなること…

AtCoder Beginner Contest 128参加メモ

Q.一週間たってからとか遅ない? A.話の途中ですまないがE4の群れだ 今回も艦これイベントやばいですね(震え声 結果 A,B,CはAC。Dはスルー。Eは提出したけどTLE。D,Eは後日解説見ながらAC。Fは解説見た(見ただけ)。 B - Guidebook C#の場合OrderByとThenByDe…

AtCoder Beginner Contest 127参加メモ

Q.古戦場とABCと艦これイベントが被るとどうなる? A.団長・・・団員のみんな・・・すまねえ・・・ ノルマ無し走る走らないも自由の団なので特に問題ないですが。そろそろ4問解けないかなーと私は思うのでした。 結果 A,B,CはAC。Dは提出したけどAC、WA、TLE入り混じ…

EFFECTIVE C# 6.0/7.0 読書メモ 項目27

C#

項目27 最小限に制限されたインターフェイスを拡張メソッドにより既往拡張する インターフェイスには最小限の機能を定義しておき、拡張メソッドを用意するようにする。 インターフェイスとして定義されたメンバを最小限に抑え、 補助的な機能を拡張メソッド…

EFFECTIVE C# 6.0/7.0 読書メモ 項目26

C#

項目26 ジェネリックインターフェイスとともに古いインターフェイスを実装すること ジェネリックインターフェイスをサポートするクラスを作成するなら、非ジェネリックインターフェイスもサポートする。 ジェネリック以前のコードも多数存在しており、それら…

AtCoder Beginner Contest 126参加メモ

問題増えた!目標は3+ atcoder.jp 結果 A,B,CはAC。Dは方針決まったけど実装まで至らず。E,Fは問題ちょいみ。 後日、D,Eは自力でAC、Fは解説見てAC。 C:Dice and Coin intで割り算して「あれ???」となっていました。初心者かよ。 D:Even Relation 例え…

diverta 2019 Programming Contest E: XOR Partitioningメモ

atcoder.jp うっかりE問題を見てしまい1週間うんうん唸り続ける羽目になったけどようやくなんとなくわかったのでメモ。公式解説のほかいろいろ見た。問題名でググって出てくるとこは大体目を通しましたよと。もはやどれを参考にできたかも覚えておらぬ。 解…

EFFECTIVE C# 6.0/7.0 読書メモ 項目25

C#

25 型引数がインスタンスのフィールドではない場合にはジェネリックメソッドとして定義すること 次の条件に該当しないのなら、ジェネリッククラスではなく非ジェネリッククラス内のジェネリックメソッドを定義するとよい。 型パラメータの値をクラスの内部状…

EFFECTIVE C# 6.0/7.0 読書メモ 項目24

C#

24 親クラスやインターフェイス用に特化したジェネリックメソッドを作成しないこと オーバーロード解決について。 ジェネリックメソッドは、型パラメータをそれぞれに該当するあらゆる型と一致できる。暗黙的型変換(例えば親クラスへの変換)よりも優先される…

EFFECTIVE C# 6.0/7.0 読書メモ 項目23

C#

項目23 型パラメータにおけるメソッドの制約をデリゲートとして定義する たいていの場合、制約としてクラス制約やインターフェイス制約を指定する方法が適している。.NET BCLでもIComparable<T>などが実装されていることを期待する機能が多数ある。 しかし、独</t>…

diverta 2019 Programming Contest参加メモ

企業主催?よくわからんが参加だ。数をこなせウィッヒー! 配点的にABとCかDクリアを目標で。 atcoder.jp 結果 A,B,C問題はAC。D問題は提出にもいたらず。E以降は問題文すら見れてねえ。 C:AB Substrings 連結してABができるか。変に被ったりしないので文中にある…

EFFECTIVE C# 6.0/7.0 読書メモ 項目22

C#

項目22 ジェネリックの共変性と反変性をサポートする 独自にインターフェイスやデリゲートを作成する場合、できる限り反変性inあるいは共変性outを設定する。 共変性と反変性をサポートするメリット 作成したインターフェイスやデリゲートの変性*1が誤用され…

EFFECTIVE C# 6.0/7.0 読書メモ 項目21

C#

項目21 破棄可能な型引数をサポートするようにジェネリック型を作成すること 型引数がIDisposableを実装している場合にも対応するようにジェネリック型を設計すること。 例1:メソッド内で型引数のインスタンスを作成して使用するようなジェネリックメソッド…

AtCoder Beginner Contest 125、AtCoder Grand Contest 033参加メモ

AtCoder Beginner Contest 125 初心者用ということでとりあえず参加 atcoder.jp 結果 A,B,D問題はAC(Accepted:正解)。CはTLE(Time Limit Exceeded:プログラムが規定時間内に回答できなかった)。 C:GCD on Blackboard 高速化の方法思いつかなかったのでAC…

AtCoder始めました

経緯 転職したいけど面接とかクソ苦手だ…。技術力評価的なあれやそれで下駄はかせてくれる都合良いののないかな…。下駄どころか地面にめり込む可能性あるけど…。 スキルチェック的なものあんのか。Paizaってのええやん。 あかん…。スキルチェック問題間違え…

EFFECTIVE C# 6.0/7.0 読書メモ 項目20

C#

項目20 IComparableとIComparerにより順序関係を実装する IComparable<T>とIComparer<T>は順序関係を定義するインターフェイス。コレクションのソート、検索するために順序関係を定義する必要がある。 例えば'List.Sort()'では'T.CompareTo(T)'を使用する。 ICompa</t></t>…

EFFECTIVE C# 6.0/7.0 読書メモ 項目19

C#

項目19 実行時の型チェックを使用してジェネリックアルゴリズムを特化する 実行時の引数の型に応じ、その型が持つ機能に適したアルゴリズムを使用するようにする。 型引数が適切な機能を備えている場合、より効率的なアルゴリズムを効率的に実装できる。 ジ…

EFFECTIVE C# 6.0/7.0 読書メモ 項目18

C#

項目18 最低限必須となる制約を常に定義すること ジェネリック型を作成する場合、最低限必須となる制約を常に定義する。 制約 メリット 使用者やコンパイラに対して想定する機能を伝達することができる。 制約があればコンパイラはその制約が満たされている*…

EFFECTIVE C# 6.0/7.0 読書メモ 項目17

C#

項目17 標準的なDisposeパターンを実装する アンマネージリソースを持つ型のメモリ管理について。標準的な方法(Disposeパターン)を実装すること。 Disposeパターンの利点 型のユーザはIDisposableインターフェイスによりアンマネージリソースを適切なタイミ…

EFFECTIVE C# 6.0/7.0 読書メモ 項目16

C#

項目16 コンストラクタ内では仮想メソッドを呼ばないこと コンストラクタで仮想メソッドを呼び出したときの動作について。 class B { protected B() {VFunc();} protected virtual void VFunc() {Console.WriteLine("B内のVFunc");} } class Derived :B { pr…

C# LINQ Whereの戻り値メモ

C#

やりたかったこと LINQとnull条件演算子を合わせ、要素がなかったらnullを返してほしい。次の式でemp=nullになると期待。 >var lst = new List<int>(); >var emp = lst.Where(e => e > 0)?.Min(); シーケンスに要素が含まれていません + System.Linq.Enumerable.M</int>…

#項目15 不必要なオブジェクトの生成を避けること

C#

ガベージコレクタによるメモリ管理にはコストがかかる。 GCの実行条件はメモリの確保量と確保の頻度で決まる。メモリを確保すればするほどより頻繁にGCが実行され、非効率的。 参照型のオブジェクトを大量に使用すれば、アプリケーションのパフォーマンスに…

EFFECTIVE C# 6.0/7.0 読書メモ 項目14

C#

項目14 初期化ロジックの重複を最小化する コンストラクタの定義方法について 推奨方法 共通処理を行うためのコンストラクタを用意する コードの重複を避けることができ、コンストラクタ初期化子に対応するオブジェクトコードがより効率的なものとして生成さ…

トラブルメモ CX-Compolet/SYSMAC Gatewayのインストール

CX-Compolet/SYSMAC Gateway のインストールでいろいろ面倒なこと*1が起きたのでメモ やろうとしたこと Windows10にCX-Complet/SYSMAC Gateway 1.5.0*2をインストール、PLCとタグデータリンク通信。 まとめ 結論から WinPCapをちゃんとインストールする PLC…

EFFECTIVE C# 6.0/7.0 読書メモ 項目12、13

C#

項目12 メンバには割り当て演算子よりもオブジェクト初期化子を使用すること オブジェクト初期化子を使用するメリット コンストラクタに関わらずメンバ変数を確実に初期化することができる 将来新しいコンストラクタを追加した場合でも、メンバ変数の初期化…

EFFECTIVE C# 6.0/7.0 読書メモ 項目11

C#

11 .NETのリソース管理を理解する 優れた開発者となるには、実行環境におけるメモリやその他主要なリソースの管理方法を理解する必要がある。.NETの場合、メモリ管理やガーベジコレクタを理解すること。 ガベージコレクタ マネージヒープにおけるメモリを管…

EFFECTIVE C# 6.0/7.0 読書メモ 項目6~項目10

C#

項目6 文字列指定のAPIを使用しないこと 文字列ベースのAPIやライブラリのデメリット ・型の安全性が損なわれる ・ツールによるサポートもなくなる ・静的型付け言語における多数の利点を失う シンボル名が必要な時はnameof()式を利用するとよい。メリットは…

EFFECTIVE C# 6.0/7.0 読書メモ 項目1~項目5

C#

項目1 ローカル変数の方をなるべく暗黙的に指定すること ローカル変数の型を宣言する場合はなるべくvarを使う。 コンパイラが型を宣言する。 メリット ローカル変数の型という細部を気にせずに済み、コードの意味に注力できる。 型を自分で選択するよりコン…

読書 スラスラわかるC# 第2版

スラスラわかるC# 第2版作者: 五十嵐祐貴,岩永信之出版社/メーカー: 翔泳社発売日: 2018/11/07メディア: 単行本(ソフトカバー)この商品を含むブログを見る C#はかなり昔に入門本を読んでそれ以来必要になった箇所だけ適当につまみ食い。そんなのでも使う頻…

チャットツール導入に失敗した話

結構前の話だけど反省も込めて。 失敗した話その1 経緯 新しいおもちゃほしい。 情報共有の問題を解決。とまではいかなくともマシにはしたかった。 一つの案件に対して複数のグループ(ソフト屋さんやら機械屋さんやら)で対応しておりますが。 グループ内では…