' P '

whatever I will forget

Java

Java StringBuilder vs String Concatenate パフォーマンスの違い

関連記事 mankozooyork.hatenablog.com 問題のおさらいしてたら、 MLEという評価をもらった。メモリ制限超過という意味らしい。ええ。。 というわけで気になって調べた。 Stringで+=で結合する場合は、基本的にはloopじゃない場合らしい。 何故か? 結合され…

Java HashMap(連想配列)

すっげー適当なHashMapに対するメモを昔に書いてました。。 mankozooyork.hatenablog.com この問題 atcoder.jp で連想配列使ったほうがいいよとなってたのでチャレンジしてみました。 まーいつも通り小一時間悩んだんですが(ダブルループなんてしないでcont…

Algorithm Bucket Sort

これ、これ 特にすぬけ君の塗り絵 2 イージーは1日中考えてしまった。 僕より理解が遅い方は多分いないと思いますがちょっとググってでてきたものより詳細な解説をしておこうw まずこんな感じの面積を求める問題でした(イメージだと白色部分の面積を求める…

Java charのループとchar型arrayのユニーク値の取得方法

atcoder.jp charのループができるなんて全く知らずに苦戦しまくった charのループ intと同じで下記のようなことができる。 for(char ch ='a'; ch<='z'; ch++) { // } もしa-zまでのchar型配列を作ることがあれば、下記は今後使用しそう。(a-zの並び方もちゃ…

Java List内のユニークな値を取り出す (HashSet, Stream.distinct())

関連記事(手動で行う場合) mankozooyork.hatenablog.com まあレベルBくらいであれば手動でやってもいいだろうけどまあ効率の良い方法は覚えておいて損はないので一応書いておきます。 方法1 (stream().distinct()を使う。Java8から) distinct後の要素を使…

A - AtCoder Group Contest 考え方

この問題は完全に勘違いしてた。。 勘違い 例)4グループ作成で1-12の数字が与えられる。 とりあえずsortして、 (1,2,3) (4,5,6) (7,8,9) (10,11,12) 7+8+9=24でいいっしょ?と思ったらWAの評価。 よーく見たら、下記の通りそのまんまで、チームの作り方に指…

Java int arrayの逆sort (Arrays.sort(), Collections.sort())

これね。 int arrayの逆sortよく忘れる。 まあ最悪忘れたらsortしたarrayを逆ループさせてもう一回作り直せばいいだけだけど。 やり方 Collections.reverseOrder()をsortの第二引数にする。第一引数はIntegerのarray。 パターン primitive type/obj type の …

Java Intellij 自分の作ったjarファイルを他プロジェクトでimportさせる

要は他プロジェクトで自身で作成したjarファイルを依存関係とさせる方法です Intellijを例としています。 手順 Jarファイル作成 File -> Project Structureを選択 Artifactタブを選択し、+を押す JAR -> From modules with dependancies を選択 現在のModule…

Java 累乗と平方根、そして立方根と...

まさかこんなの使う日が来るとは、って感じでしたが一応 累乗 Math.pow()を使います。 引数が2個あって、Math.pow(2,2)とすると2の2乗になります。 第一引数が累乗したい数値、第二引数がn乗したいのか、です。 ちなみにこの問題のように、平方数を求めたい…

Java 多次元配列について

多次元配列だとちょっといつもと変わるよ! 定義 int[][] arrays = new arrays[要素数1][要素数2] lengthの取得 全体の数を取得したい arrays.length (いつもと変わらない) n次配列の長さ arrays[i].length i次配列の要素数を取得する。 例えば、{{1,2}, {…

全探索アルゴリズム ターゲット値に当てはまる積のパターン数の求め方

まったく解決法が見つからずにモヤモヤしたのでメモ コンピューターが得意なのは計算とよく聞くけども、その考えをちゃんと活かさないといけない。 割り算(除算)は使うな また、積の組み合わせを見つけ出すような課題の場合、割り算は使ってはいけない 割…

Java Arrayの中のMax/Minを探す

意外とJavaってpythonとかみたいにmax(array) !!!とかやって最大値を取得できないんですね。。 まあでも探せば一応簡単な方法はあったのでメモ import java.util.Collections と import java.util.Arraysを使う intではなく、Integerでarrayを作成する必…

Java String文字列のascending/descending orderの並び替え

ググればできたけど、これ何も見ずにコーディングできるようになるかなあ。。 Solution (ascending order) Stringをchar arrayに変換する String tmp = "dcaebf"; char[] array = tmp.toCharArray(); char arrayをsortする Arrays.sort(array); (注) import …

Java substringメソッドとStringBuilder

文字列操作系の問題多い! substringおさらい substringで困ったのおさらい 引数は、開始index, 終了index` 終了indexの文字列は含まない ※pythonでも同じ。 引数を1つにすると、それ以降の文字全てを取得する 追記 5/25 絵の例で、もしindex8-9の文字列を取…

Java String文字列の結合にハマる。NULLが表示されちゃう問題。

問題 String型の文字列の結合をしていると、出力結果がNULLXXXとかになってしまった。 (NULLが大文字になっているのはtoUpperCase()を行なっているためw) 原因 String str = null;ってやった後に str += input.substring(0,1)ってやってるから 初心者視点…

Java size(), length, length()の違い

これ全然気にしてなくて、arrayの要素を取得しようとしたら、意味不明なエラーが発生した。 あとここ最近ArrayListを何も理解せず使っていたのでsize()はarrayでも使えるんだと思っていた。 結論 size()はCollectionクラスのobjに対して使える。例えばArrayL…

Java == と equalsの違い +equalsIgnoreCase()

これハマってしまった。。 結論 String型はequalsを使おう 値型はスタック領域を比較するから==でOK 参照型はヒープ領域を比較しないといけないからequals()を使うべき(arrayもこっちに入るよ) 問題 やってしまってたのは下記のようなコード inputは"1 + 2"…

Java Generics

Generics (総称型) です。 Genericsとは? 薄い理解としては、型タイプを指定し、想定していないタイプがメソッドやクラスに渡された際にコンパイル時にエラーにしてくれるという感じ Genericsが活きる時 例えば、ArrayListの下記の場合、どんあタイプも受け…

JavaでのDoubly Linked List

表題のコードを見つけて何をやってるのか延々悩む日々を送ってましたが、下記youtubeビデオが非常にわかりやすかったのでメモ youtu.be Nodeが何個あるか見つける簡単なコード はい、youtube上ででてきた問題ですw class Node { int data; Node next; public…

Java toString メソッドのOverride Tips

クラスを作れば、JavaのObjectクラスから継承したことになるので class内ではtoStringメソッドをoverrideすることができる。 使い方 デバッグ用に作っとくと楽よ クラス内のメンバの値をString値で返す サンプル public class foo { int i; int j; public fo…

Java Interface

Interfaceの定義。 ルール Interfaceという名前でclassみたいなノリで作成する Interfaceを作ったら頭の文字をIにするのが慣習 (IFooなど) interfaceを使う側のclassでimplements Interface nameを記述する interfaceをimplementsしたclassでは、interfaceの…

Java array内の重複値を除去してユニークなものだけ取り出す

だいぶ悩みました。。 しかし、これもロジックを覚えておけば多分応用できますね。 前提 arrayの値はランダムに入力される arrayのlengthも入力される値に左右される メモ まず値の並びがランダムなのでArrays.sort()を行う(これやらないとロジックが正しく…

Java arrayの定義

いや、、ランクAしてたらArrayの宣言の仕方忘れてた(C系の言語と違うんだもん..テヘペロ) int[] array = new int[2]; あと、宣言の際にnew int[2]ってしたら要素は2個よ。 *たまにindexと間違えちゃう。。 public class test4 { public static void main(S…

Java ArrayListのforループ Tip

はい、いつもこうやってましたよね before for(int i = 0; i < arrayList.size(); i++) { after for(String something: arrayList) { まあどっちがいいかは個人的には好みは分かれそう。 昔の言語が好きな人はbeforeのほうが読みやすいだろうな。 pythonとか…

Java Constructorとstaticを使ったtips

StaticのTips 毎回クラスをコンストラクタ経由でnewしないといけないのが面倒な場合 下記にしておけば、main側から下記でDataオブジェクトを作れるんですね〜〜〜 returnの前のnewを忘れずにね! public class Data { private String data1; private String …

Java LinkedListの中身をアルファベット順に並び替える compareTo()の使い方も。

compareTo()メソッドを使用する。 Stringタイプでも使用できるのはすごい。Unicode順で差分を出すらしい.. とりあえずcompareTo()の結果値を覚えておく 前提:stringA.compareTo(stringB); とする - 返り値が0: 同じ値の比較 - 返り値が0以上: stringAのほう…

Java Primitive TypeのArrayList

昔にArrayListのメモ書いたけど mankozooyork.hatenablog.com この時はintとかでArrayListは作れませーん!(ドヤ顔)みたいな感じでしたけど 実は作れましたってお話です Autoboxing / Unboxingとも言うようです Autoboxing 基本はsetみたいな意味合い clas…

Java ClassのArrayListでのindexOf()でハマった話

なんで-1がかえってくるの!?と小一時間悩んでようやく解決しました 自分が書いたコードは下記 例えばDataクラスに実データが格納されて、TestクラスにDataクラスのArrayListを持つ場合。 そしてmainクラスからobjをTestクラスのArrayListにaddしてArrayLis…

Java Arrayの中身を逆にする

これまたランクAくらいの問題で出そうなのでメモ ミソはhalfLengthを作るところ。これを作らないとarrayの半分以降のswapができない... 下記はそれぞれarray内で交換される値 array[0] : array[4] array[1] : array[3] array[2] : array[2] array[3] : array…

Java Array 便利メソッド

便利なライブラリメソッドをメモ 1. Arrayの中身をコピーする int[] array = {1,2,3,4,5}; int[] array_copy = Arrays.copyOf(array, array.length); 上記でforループを回して全エレメントをチェックしてコピーする必要もなくarrayの内容全てコピーできる co…