Java初心者の競技プログラミング日記

Dvorak配列でjavaを書いてます

Room Numbers of a Hospital [AOJ0208]

Room Numbers of a Hospital | Aizu Online Judgeいかにも競プロで出題されそうな問題だなと思いました。 import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void mai…

一般的なUIデザインにおいて「はい」が左側、「いいえ」が右側の理由

仮説1 人口の大多数を占める右利きの人の場合、「はい」を押すときにはマウスを持った手は内側に移動し、「いいえ」を押すときには外側に移動する。言うまでもなく、内向きとは受け入れることであり、外向きとは拒否することである。そのイメージが設計者の…

Magical Tiles [AOJ0104]

不思議なタイル | Aizu Online Judge某国民的ゲームに出てくる仕掛けを彷彿とさせる問題です。解いていて楽しかったです。 package Blog; import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(Syst…

Joseph's Potato [AOJ0085]

ヨセフのおイモ | Aizu Online Judge package Blog; import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { while(sc.hasNext()) { int n = s…

計数ソート [ALDS1_6_A : Counting Sort]

計数ソート | アルゴリズムとデータ構造 | Aizu Online JudgeAIZU ONLINE JUDGEの問題です。 package Blog; import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void m…

AtCoder Beginner Contest 099

今回は惨敗に終わりました。ですのでその原因を徹底的に考察していこうと思います。 A - ABD 1~999と1000~1998に場合分けすれば終わり、のはずなのだが……。 ABCかABD、このどちらかを出力すればいいはずなのに、その後ろの数字まで出力するプログラムを書い…

マージソート [ALDS1_5_B : Merge Sort]

マージソート | アルゴリズムとデータ構造 | Aizu Online JudgeAIZU ONLINE JUDGEの問題です。一概にマージソートといっても、さまざまな実装方法があるようで、それで迷ってしまって実装するのにやたらと時間がかかってしまった。 僕が今回用いた実装方法は…

AtCoder Beginner Contest 098

※今回のコンテストには出場できず、全ての問題は終わった後に解きました。 A - Add Sub Mul out.println( max(a+b,a-b,a*b) ); B - Cut and Count import static java.lang.System.*; import java.util.*; public class Main { //初期フィールド・メソッド--…

yukicoder No.688 E869120 and Constructing Array 2

方針 ・0と1の順番は関係ないので、リストに1を適当個詰めたあと、0を適当個詰めて、出力する ・ここでは便宜上、1を「2を作るための数」と定義し、0を「組み合わせを増やすための数」と定義する。 ・合計が2になるには、1が少なくとも2個は必要。 →k=0のと…

AtCoder Beginner Contest 097

A - Colorful Transceivers import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { int a=sc.nextInt(), b=sc.nextInt(), c=sc.nextInt(), d=…

n以下のすべての素数をリストで返すメソッド

エラトステネスのふるいを用いて、n以下のすべての素数をリストアップするメソッド。ふるい終わったあとの配列が穴だらけになって不便なので、単にそれをリストに詰め込んだだけです。 static List<Integer> primeList(int n) { List<Integer> list = new ArrayList<>(); boole</integer></integer>…

AtCoder Beginner Contest 096

※今回は不参加で、問題はすべてコンテスト終了後に解きました。 A - Day of Takahashi out.println(a B - Maximum Sum import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public sta…

AtCoder Beginner Contest 095

※今回は不参加で、問題はすべてコンテスト終了後に解きました。 A - Something on It import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { …

可変長引数を用いた、最大値・最小値を求めるメソッド

可変長引数なるものがあることを(たった今)知りました。面白い書き方だったので、すぐにメモすることに。 import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void m…

AtCoder Beginner Contest 094

※今回は不参加で、問題はすべてコンテスト終了後に解きました。 A - Cats and Dogs import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { in…

AtCoder Beginner Contest 093

※今回は不参加で、問題はすべてコンテスト終了後に解きました。 A - abc of ABC import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { Strin…

久しぶりの更新

3月29日以来、ほぼ一か月間、ほとんど競技プログラミングに触れていませんでした。理由は置いておいて、今日からまじめに再開したいと思います。「一か月間競技プログラミングから離れると、どれだけ能力が落ちるのか」のモデルケースにでもなれれば幸いです…

【JavaFx入門】002.キーボード入力を取得する

キーボード入力を受け取って動作するJavaFxプログラムを書いてみたいと思います。ここでは、上下左右のキーでウィンドウ内の画像を操作する、RPG風のサンプルプログラムを紹介します。 package Blog; import java.io.File; import javafx.application.Applic…

【JavaFx入門】001.最も単純なJavaFxプログラム

最も単純だと思われるJavaFxプログラム(ウィンドウを表示するだけ)を書いてみたいと思います。 package Blog; import javafx.application.Application; import javafx.stage.Stage; public class Sample extends Application { @Override public void star…

ローグライクゲーム制作日記 2日目

現況 ・わりと形にはなってきた ・コードが煩雑としてきた 今日やったこと ・街マップを作った ・階段上り下りの処理を作った ・アイテム欄を作った 次やること ・ランダムダンジョン生成はとりあえず後回し・主人公のステータス充実 →メンバに剣、鎧なども…

ローグライクゲーム制作日記 1日目

目標 ・Java(JavaFx)でローグライクゲームを作る ・挫折する可能性が高いので、最低限のものでいいからとにかく完成させる 今日やったこと ・ゲームの外枠作り(マップ、キー入力、敵配置など) ・サンプルマップの中を探索できるようにした ・敵をランダ…

No.240 ナイト散歩

方針 ・問題文にある8座標にそれぞれ分岐していくような再帰関数を書く import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); static int gx = sc.nextInt(); static int gy = sc.nextI…

AtCoder Regular Contest 031 B - 埋め立て

方針 ・地図は10*10なので全探索可能 ・埋め立てたときに複数の島を連結させられる海マスとは、少なくとも上下左右に二つの隣接した島マスを持っている必要がある ・地図を二次元配列に読み込む(このとき、島の総マス数を記録しておく。areaとする) ・上の…

ダンジョンを自動生成するアルゴリズム

ローグライクゲームに出てくるようなダンジョンを自動で生成するアルゴリズムを作ってみました。 生成例 ソースコード package Blog; import java.util.*; import static java.lang.System.*; public class Blog { //ダンジョンの大きさ static int h = 20; …

AtCoder Beginner Contest 092

A - Traveling Budget ans = Math.min(a,b) + Math.min(c,d); B - Chocolate import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { int n = …

スタックを用いた深さ優先探索

深さ優先探索は再帰関数を用いることでも実現できますが、今回はスタックを使って実装してみようと思います。ちなみに、深さ優先探索ではスタックというデータ構造(後入れ先出し)を使うのに対して、幅優先探索ではキューというデータ構造(先入れ先出し)…

ラムダ式の使いかたメモ

ラムダ式の使いかたを雑然とメモしていく記事です。 リスト、マップを出力する list.forEach(e -> out.println(e)); //リストを回して出力 map.forEach((key,value) -> out.println(key+" "+value); //マップを回して出力 とくにマップを出力するときには便…

『スッキリわかるJava入門』を読んだ

スッキリわかるJava入門 第2版 (スッキリシリーズ)作者: 中山清喬,国本大悟出版社/メーカー: インプレス発売日: 2014/08/07メディア: 単行本(ソフトカバー)この商品を含むブログ (19件) を見る 経緯と動機 実をいうと僕はJava学習を一度挫折している。Java…

AtCoder Beginners Selection

AtCoder Beginners Selectionの問題を解いてみました。全十問。AtCoder Beginners Selection - AtCoder Beginners Selection | AtCoder PracticeA - はじめてのあっとこーだー(Welcome to AtCoder) import java.util.*; import static java.lang.System.*;…

マップを値でソートする方法

マップを値でソートする方法については以前記事にしたのだけれども、マップを値でソートするメソッド - Java初心者の競技プログラミング日記あまりに冗長すぎるのでもっと短く書ける方法を探した。見つかった。 //昇順 map = map.entrySet().stream() .sorte…