' P '

whatever I will forget

Entries from 2020-05-01 to 1 month

Java BigInteger & BigDecimal

さきほど初めてコンテスト参加してきました! 結果はCまで解けたので目標としてはクリア、嬉しいです。 B問題で4回連続でWAだしてもうダメだ。。となりましたがそこからググりまくってBigIntegerを使って逃げる作戦に変更したらACになってめちゃくちゃ嬉しか…

周期性やパターンを見つけ出す

例題1 B - Choose Integers これも全くわからず思考停止してすぐ解説見てしまった... 端的に言うと周期性を導き出せるかどうかの問題。 全く導けませんでした(笑) かろうじてわかったのは、倍数の総和をBで割ったときの余りがCになる場合、書いてあったけ…

1000000007系: 合同

この問題 B - Training Camp まっっったくわかりませんでした。 さすがに普通に1*1,1*2,2*3,6*4,24*5....x*nをしたらダメなんだろうなと思ったのですが 解説をみようが数学の知識が欠陥しすぎて全くわかりませんでした。 JavaのLongだとMAXは922337203685477…

マス系: ABC 075 B - Minesweeper

二次元配列 & マス系の典型問題 if/else ifでゴリゴリ書いて解けるかどうかも微妙... まあ、とりあえずこういうグリッド系では自分の周りに動いたら座標がどう変わるかという指標を別途arrayで持っておくとよいようです。 画像だと赤が自分のいる場所だとす…

復習すべき問題たちまとめ

とりあえずランクBの問題はスラスラ解けるようになりたい。 随時追加方式 計算量考慮 B - Sum of Three Integers C - Otoshidama 処理時間の計算を行なってからロジックを考える必要がある アルゴリズム 全探索を行う際の時間計算量の求め方 - ' P ' 追記6/6…

Java charの結合

最近やたらjavaのcharに悩まされます。 この問題 困ること 下記のようなことはできません。 unicodeのコード番号が表示されます。 char a = 'a'; char b = 'b'; char c = 'c'; System.out.println(a + b + c); // prints unicode code stackoverflow.com 解…

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…

アルゴリズム 全探索を行う際の時間計算量の求め方

以前CS DojoのBig O Notationってのをぼーっとみてたんですけど www.youtube.com AtCoderのこの問題でまんまと三重ループでひっかかってしまい、、、 Big O Notation全然活かせてませんでしたてへぺろ まあとりあえずインプットに動的な場合はO(n^2)ってやつ…

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…