Java
Javaって書き方によって処理速度がかなり変わる言語ですよね... (まあ言語によってもちろん書き方によって速度が変わるはずですが) AtCoderで普通に処理速度がやたら早い人がいるので、何が違うんだろう?と比較してみたら、inputの値の格納時点に違いがある…
考え方 これもほぼほぼ数学的なセンスが必要です Sort済みの場合、0 ≤ P < Q < R < Nに必ずなっている P+Q>Rだけを調べればいい訳は、ソート済みの場合はP<Q<Rに必ずなっている前提のため(1,2,5,8,10,20)、 1,2,5をP,Q,Rとすると、 P(1)+R(5)>Q(2), Q(2)+R(5)>P(1)は必ず満たされる。 この場合、P(1)+Q(2)>R(5)のみ満たされないため、それだけ調</q<rに必ずなっている前提のため(1,2,5,8,10,20)、>…
難題っぽいです。普通に難題です。なにしたらいいのかあんまりよくわかりません。 解説はこちらを見てください。(丸投げw) codility-lessons-jp.blogspot.com import java.util.*; public class Solution { public static void main(String[] args) { Syst…
考え方 苦手な数学の発想問題です。なんでprefix sumのセクションにあるんや...? もしBが11なら、11 / 2 = 5 11までの数字は: 1,2,3,4,5,6,7,8,9,10,11 2で割れる数字は: 2,4,6,8,10 -> 5 あってます。 もしAが6なら、6 / 2 = 3 6までの数字は: 1,2,3,4,5,6…
考え方 全体の数の合計値 / 全体の数の平均値より、最小の値は2個ずつの平均値、または3個ずつの平均値のどちらかに存在する らしいです。あんまりしっくりきていないので完璧な方ぜひおしえてください。 まあ、一応下記例から読み取れるとしたら、確かに全…
アルゴリズムの一種で、値のithからjthまでの合計値を効率良く取得するために使用する ほぼほぼ累積和と変わらないと思っています 参考 codechacha.com 問題 app.codility.com 問題の英語的にはっきり言って一見では何したらいいのか意味不明でしたw 渡され…
まだまだ全然知らないメソッドが沢山あって、奥深いなぁーと 最近使用したのは、AbstractMap.SimpleEntryです。 C++のように、make_pairをしたいときってどうするのかなぁと思っていたら、上記がでてきました。 javaFxにもPairというC++と同じようなClassが…
参考: www.geeksforgeeks.org 問題例: ALDS1_3_B: Queue コード JavaでクラスをC/C++の構造体みたいに使うやり方に苦戦した。 import java.util.Scanner; class Main { static int quantum; static int currentElapsedTime; class Data { String processName…
かなーりふわっとした理解ですが、 自作オブジェクトをequalsで比較する際にequalsをobjectクラスからoverrideした際には、hashcode関数もちゃんとoverrideしないとうまく動かないらしい。 一旦解説は無しで下記Qiitaをポイントすることで備忘録とする。 参考…
フィボナッチとかくらいしか、再帰を使ったことないのですが 動的計画法(DP)を勉強中にメモ化再帰、という単語が登場し、こりゃあスゴイ!と思ったのでメモ。 概要 各数字における答えをメモしておく。 再帰関数は同じ値に対する計算を何度も行うので、処…
C問題が解けるためには避けては通れない道っぽい.... 2進数とか16進数とかすごい嫌いw まずは理解できるまで下記を読みまくるのがいい気がする. 参考 qiita.com qiita.com drken1215.hatenablog.com lovedvoraklayout.hatenablog.com ちなみに、ABC167のC問…
階乗とは 10! と書いたりするようですが、1~10までの整数値を掛け合わせた値です. 回帰呼び出しで実装 10までの階乗をループなしで求めます。 public class Main172 { static int value = 1; static int sum = 1; public static void main(String[] args) { …
Brute Force(全探索)でガンガン探すよりも、もちろん二分探索法のほうが結果として処理が早くなる可能性があるので、めもめも 二分探索法とは qiita.com binarySearch()とは ほぼ、Collectionsの中身しか見ていないけど、パッとコードを見て二分探索法かな…
atcoder.jp で撃沈でした! 問題 端的に言うと、数字が与えられるので、それに対応するアルファベットを出力せよ。という問題 例えば、1ならa、27ならaaみたいな感じ。 これも覚えておけば次使えるテクニックなので、めもめも。 アルファベットは26進数であ…
活用法はわかってませんが、こんなこともできるのかーってメモ ポイント コンストラクタよりも先に呼ばれる。 変数の保持も可能。 public class Main { public static void main(String[] args) { SIB sib = new SIB(); System.out.println(sib.something); …
Javaって標準偏差のライブラリないんですね。。 Cみたく自作するしかないのか! onlinejudge.u-aizu.ac.jp 求め方 下記参考サイトをそのまま引用させて頂きます。 1.データ全体の平均値を出す 2.偏差(各データから平均値を差し引いた値)を求める 3.2で算出…
onlinejudge.u-aizu.ac.jp はい、アルゴリズムと称したただの数学復習メモです。 サイン、コサイン、タンジェント、、あーやったなー以外何も覚えてませんでした。 というわけで手っ取り早くなんだっけ?ってわかるためには下記記事がわかりやすかったです i…
Character.isDigit() これはchar型に対して使用可能 数字かどうか確認したいときに使おうね String str = "1"; if(Character.isDigit(str.charAt(0))) { int a = Integer.parseInt(str); } String.isBlank() 空か、空白しか入っていないのかかどうか判断する…
ある問題で、スペースごとにString値を区切ったほうがよいのか? なんて考えて、str.split(" ");としていたのですが、Scanner inputからの値に対してそんなことは全くしなくていいことを学んだ。 Scanner.next() 空白までを文字列として扱う Scanner.nextLin…
こんなんしらんし。。ってテクニックですな。 アルファベットを大文字から小文字にunicodeの数字を使って変換するやり方 それに関してはこちらで。(このテクニックは大文字に+20すると小文字に変換できるよーって話でした) mankozooyork.hatenablog.com ア…
Char型 大文字/小文字の判別 Character.isUpperCase(char c) Character.isLowerCase(char c) を使う。 大文字/小文字の変換 Character.toUpperCase(char c) Character.toLowerCase(char c) String型 String strに含まれる文字列の全変換は可能なよう。 Syste…
Javaでreverseメソッドを簡単に使うには2種類やり方があります あとは、手動でloopさせて組み替えるような方法になります その1: StringBuilderのreverse()を使う これはそもそもその文字列変数をStringBuilderで定義しておかないとだめです. StringBuilder…
貪欲探索法についてです 定義 シンプルにまとめると、問題の解に対して複数のオプションがある際に、それぞれを評価し、最適値が高い順に評価していく探索法です 解説および参考 qiita.com 知ることになった経緯 atcoder.jp この問題です。解説をみると、文…
こんなんしらんし。。 \\が二個立て続けに続く場合は、エスケープ記号として扱われ、\を出力したいときに使うそう System.out.println("\\a\\b"); とすれば、出力は\a\bとなるってことです。 stackoverflow.com
引っ掛け問題にいつもうまいくらいひっかかります。 public class Main { public static void main(String[] args) { int x = 2; int y = ++x*2+x; System.out.println(++x + "" + y); } } 答えは49です。 なんで? てっきり、x*2が先に行われて++されると思…
よくどっちやったっけ。。となる Stack primitive typeが格納される Heap 参照型変数が格納される(オブジェクト) www.itsenka.com ちなみに 下記のような宣言をしてobjのインスタンス型変数を作った場合 a1,a2,a3の参照アドレスは全て同じになります。 そ…
stackoverflow.com Javaは引数にdefault値を持たせることはできないようです.
Javaには大きくわけて2通りのExceptionの種類がある 1つめ: Checked コンパイル時にエラーだと見分けてくれるもの 2つめ: UnChecked コンパイル時にはエラーだと見分けてくれない。実行時に初めてExceptionが発生する www.geeksforgeeks.org GeeksforGeeks…
さきほど初めてコンテスト参加してきました! 結果はCまで解けたので目標としてはクリア、嬉しいです。 B問題で4回連続でWAだしてもうダメだ。。となりましたがそこからググりまくってBigIntegerを使って逃げる作戦に変更したらACになってめちゃくちゃ嬉しか…
最近やたらjavaのcharに悩まされます。 この問題 困ること 下記のようなことはできません。 unicodeのコード番号が表示されます。 char a = 'a'; char b = 'b'; char c = 'c'; System.out.println(a + b + c); // prints unicode code stackoverflow.com 解…