プログラミング

657. Robot Return to Origin

LeetCode の挑戦ログ Problem https://leetcode.com/problems/robot-return-to-origin/ 座標位置を上下左右に動かす指示が文字列で与えられる R (right), L (left), U (up), and D (down) 元の位置 (0, 0) に戻っていたら true , 戻っていなければ false を…

A - Remaining Balls

AtCoder の挑戦ログ Problem https://atcoder.jp/contests/abc154/tasks/abc154_a Solution import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String color1 = sc.next(); sc…

728. Self Dividing Numbers

LeetCode の挑戦ログ Problem https://leetcode.com/problems/self-dividing-numbers/ 整数の範囲が渡される 範囲の中から、自身の桁ごとの数字で割り切れる値を抽出する 0 を含む値は除外する Solution class Solution { public List<Integer> selfDividingNumbers(i</integer>…

961. N-Repeated Element in Size 2N Array

LeetCode の挑戦ログ Problem https://leetcode.com/problems/n-repeated-element-in-size-2n-array/ 2N サイズの配列が与えられる N+1 種類の整数が含まれている 一つの要素が N 回繰り返されている N 回繰り返されてる数を特定する Solution class Solutio…

905. Sort Array By Parity

LeetCode の挑戦ログ Problem https://leetcode.com/problems/sort-array-by-parity/ 正の整数からなる配列を渡される 偶数 -> 奇数の順にソートする 偶数 -> 奇数であれば他の順序は問わない Solution class Solution { public int[] sortArrayByParity(int…

832. Flipping an Image

LeetCode の挑戦ログ Problem https://leetcode.com/problems/flipping-an-image/ バイナリマトリックス(二次元配列)が渡される 各行をひっくり返した後、反転させる Solution class Solution { public int[][] flipAndInvertImage(int[][] A) { return Ar…

1299. Replace Elements with Greatest Element on Right Side

LeetCode の挑戦ログ Problem https://leetcode.com/problems/replace-elements-with-greatest-element-on-right-side/ 配列の右側で最大の値に置き換えた配列を作成する 配列の最後に -1 をつける Solution class Solution { public int[] replaceElements(…

データベースのPRIMARY KEYを自動採番せずにアプリケーション側で生成する

データベースの自動採番 データベースにはPRIMARY KEY(要はID)を自動採番で生成してくれる機能を提供していることが多い。 MySQLのAuto Increment PostgreSQLのSerial OracleのSequence etc サロゲートキーのような、特に意味のないデータのIDを発行するとき…

期間の範囲を示すパラメータ名について考えてみた #programming

概要 APIのパラメータとして期間の範囲を表す命名について、職場でいい議論がなされたので自分なりにまとめておく。 期間の範囲というのは「開始日時」「終了日時」のようなものを想定。 start-end 扱いやすそうなのはこれ。 日時の場合は、終了側が排他的で…

Javaで期間の日数を計算する #java

概要 2016年1月7日から2017年4月27日みたいな期間の日数を数える方法。 Period…惜しい 日付の期間を扱うには java.time.Period クラスがあるが、悲しいことに日数をカウントするAPIがない。 getDays() は日付だけで計算をするため、月をまたいだ日数のカウン…

データ抽出のテストにはモブプログラミングを使うといいかも #MobProgramming

モブプログラミングとは? この記事では複数人で行われるプログラミングの意です。 ペアプロの延長線上だと考えて下さい。 正確な定義とは異なるかもしれません。 参考までに以前書いた記事です。 su-kun1899.hatenablog.com データ抽出のテストって? 何ら…

モブプログラミングやってみたら最高だった #MobProgramming

今日チームでモブプログラミングを初めてやってみたのだけれど、最高だったのでテンションのままにブログを書く。 きっかけ ふりかえりでたまたまJoy.Incの話になり、あの会社は全部ペアでやってるらしく、ペアプロしたくなるという話をした。 そうしたら、…

Collectors.toMapで、同一キーを処理する #java

streamでMapに詰める Javaのstreamを使ってMapにつめかえる場合、Collectors.toMapを使う。 Map<Long, String> fooMap = fooList.stream() .collect(Collectors.toMap( Foo::getId, Foo::getName ); しかし上記の場合だと、キーが重複していた場合に IllegalStateException</long,>…

最近迷っていること: メンバーオブジェクトのアクセサを用意すべきか? #java #プログラミング

最近迷っていること。 クラスのメンバーオブジェクトのアクセサを直接定義するよりは、隠蔽してあげたほうがいいんじゃないかと思うこと。 最終的にケースバイケースだろうとは思いつつ、気にする観点やポリシーなどはまだまだ引き出しが少ない。 直接アクセ…