From 24c732be002b74dfbeb5a7290a61bd1c9293fd78 Mon Sep 17 00:00:00 2001 From: kurisu Date: Thu, 3 Jul 2025 16:13:35 +0900 Subject: [PATCH 1/2] =?UTF-8?q?paiza=E3=81=AEB145=E3=81=AE=E5=9B=9E?= =?UTF-8?q?=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kurisu/src/B145.java | 114 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 kurisu/src/B145.java diff --git a/kurisu/src/B145.java b/kurisu/src/B145.java new file mode 100644 index 0000000..c028329 --- /dev/null +++ b/kurisu/src/B145.java @@ -0,0 +1,114 @@ +import java.util.Scanner; + +public class B145 { + public static void main(String[] args) { + // 自分の得意な言語で + // Let's チャレンジ!! + Scanner sc = new Scanner(System.in); + final int bingoSize = sc.nextInt(); + final int drawingTimes = sc.nextInt(); + + Bingo bingo = new Bingo(bingoSize); + bingo.bingoDrawing(bingoSize, sc); + bingo.punchNumber(bingoSize, drawingTimes, sc); + final int bingoResult = bingo.countBingo(bingoSize); + + ShowResult result = new ShowResult(); + result.outputResult(bingoResult); + sc.close(); + } +} + + +class Bingo { + private int[][] bingoCard; + + // ビンゴカードのサイズを指定 + Bingo(int size) { + this.bingoCard = new int[size][size]; + } + + // ビンゴの各マスに数字を入力 + final void bingoDrawing(int size, Scanner sc) { + for (int i = 0; i < size; i++) { + for (int j = 0; j < size; j++) { + bingoCard[i][j] = sc.nextInt(); + } + } + } + + // 指定した番号があればその番号のマスをパンチ + final void punchNumber(int size, int punch, Scanner sc) { + for (int i = 0; i < punch; i++) { + final int number = sc.nextInt(); + // System.out.print(number + " "); + for (int j = 0; j < size; j++) { + for (int k = 0; k < size; k++) { + if (bingoCard[j][k] == number) { + bingoCard[j][k] = 0; + } + } + } + } + } + + final int countBingo(int length) { + int bingoCount = 0; + // 横のビンゴの判定 + for (int i = 0; i < length; i++) { + boolean rowBingo = true; + for (int j = 0; j < length; j++) { + if (bingoCard[i][j] != 0) { + rowBingo = false; + } + } + if (rowBingo != false) { + bingoCount++; + } + } + + // 縦のビンゴの判定 + for (int j = 0; j < length; j++) { + boolean columnBingo = true; + for (int i = 0; i < length; i++) { + if (bingoCard[i][j] != 0) { + columnBingo = false; + } + } + if (columnBingo != false) { + bingoCount++; + } + } + + // 左上から右下による斜めのビンゴ判定 + boolean obliqueBingo = true; + for (int i = 0; i < length; i++) { + if (bingoCard[i][i] != 0) { + obliqueBingo = false; + } + } + if (obliqueBingo != false) { + bingoCount++; + } + + // 右上から左下による斜めのビンゴ判定 + obliqueBingo = true; + for (int i = length - 1; i > -1; i--) { + if (bingoCard[i][length - i - 1] != 0) { + obliqueBingo = false; + } + } + if (obliqueBingo != false) { + bingoCount++; + } + + return bingoCount; + } +} + + +class ShowResult { + void outputResult(final int inspectResult) { + System.out.println(inspectResult); + } +} -- GitLab From 48eacee89d458cba7682c343ab874b8182393778 Mon Sep 17 00:00:00 2001 From: kurisu Date: Fri, 4 Jul 2025 13:37:33 +0900 Subject: [PATCH 2/2] =?UTF-8?q?paiza=E3=81=AEB145=E3=81=AE=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kurisu/src/B145.java | 53 ++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/kurisu/src/B145.java b/kurisu/src/B145.java index c028329..5b25e54 100644 --- a/kurisu/src/B145.java +++ b/kurisu/src/B145.java @@ -2,16 +2,14 @@ import java.util.Scanner; public class B145 { public static void main(String[] args) { - // 自分の得意な言語で - // Let's チャレンジ!! - Scanner sc = new Scanner(System.in); + final Scanner sc = new Scanner(System.in); final int bingoSize = sc.nextInt(); final int drawingTimes = sc.nextInt(); - Bingo bingo = new Bingo(bingoSize); - bingo.bingoDrawing(bingoSize, sc); - bingo.punchNumber(bingoSize, drawingTimes, sc); - final int bingoResult = bingo.countBingo(bingoSize); + final Bingo bingo = new Bingo(bingoSize); + bingo.bingoDrawing(sc); + bingo.punchNumber(drawingTimes, sc); + final int bingoResult = bingo.countBingo(); ShowResult result = new ShowResult(); result.outputResult(bingoResult); @@ -22,28 +20,29 @@ public class B145 { class Bingo { private int[][] bingoCard; + private int bingoSize = 0; // ビンゴカードのサイズを指定 - Bingo(int size) { + Bingo(final int size) { this.bingoCard = new int[size][size]; + this.bingoSize = size; } // ビンゴの各マスに数字を入力 - final void bingoDrawing(int size, Scanner sc) { - for (int i = 0; i < size; i++) { - for (int j = 0; j < size; j++) { + final void bingoDrawing(final Scanner sc) { + for (int i = 0; i < bingoSize; i++) { + for (int j = 0; j < bingoSize; j++) { bingoCard[i][j] = sc.nextInt(); } } } // 指定した番号があればその番号のマスをパンチ - final void punchNumber(int size, int punch, Scanner sc) { + final void punchNumber(final int punch, final Scanner sc) { for (int i = 0; i < punch; i++) { final int number = sc.nextInt(); - // System.out.print(number + " "); - for (int j = 0; j < size; j++) { - for (int k = 0; k < size; k++) { + for (int j = 0; j < bingoSize; j++) { + for (int k = 0; k < bingoSize; k++) { if (bingoCard[j][k] == number) { bingoCard[j][k] = 0; } @@ -52,53 +51,53 @@ class Bingo { } } - final int countBingo(int length) { + final int countBingo() { int bingoCount = 0; // 横のビンゴの判定 - for (int i = 0; i < length; i++) { + for (int i = 0; i < bingoSize; i++) { boolean rowBingo = true; - for (int j = 0; j < length; j++) { + for (int j = 0; j < bingoSize; j++) { if (bingoCard[i][j] != 0) { rowBingo = false; } } - if (rowBingo != false) { + if (rowBingo) { bingoCount++; } } // 縦のビンゴの判定 - for (int j = 0; j < length; j++) { + for (int j = 0; j < bingoSize; j++) { boolean columnBingo = true; - for (int i = 0; i < length; i++) { + for (int i = 0; i < bingoSize; i++) { if (bingoCard[i][j] != 0) { columnBingo = false; } } - if (columnBingo != false) { + if (columnBingo) { bingoCount++; } } // 左上から右下による斜めのビンゴ判定 boolean obliqueBingo = true; - for (int i = 0; i < length; i++) { + for (int i = 0; i < bingoSize; i++) { if (bingoCard[i][i] != 0) { obliqueBingo = false; } } - if (obliqueBingo != false) { + if (obliqueBingo) { bingoCount++; } // 右上から左下による斜めのビンゴ判定 obliqueBingo = true; - for (int i = length - 1; i > -1; i--) { - if (bingoCard[i][length - i - 1] != 0) { + for (int i = bingoSize - 1; i > -1; i--) { + if (bingoCard[i][bingoSize - i - 1] != 0) { obliqueBingo = false; } } - if (obliqueBingo != false) { + if (obliqueBingo) { bingoCount++; } -- GitLab