From 13cac21a41c7a47f3c449186fd494f205a320e70 Mon Sep 17 00:00:00 2001 From: isobe Date: Thu, 3 Jul 2025 15:01:39 +0900 Subject: [PATCH 1/2] =?UTF-8?q?paiza=20B163=E3=81=AE=E5=9B=9E=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tisobe/src/B163.java | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tisobe/src/B163.java diff --git a/tisobe/src/B163.java b/tisobe/src/B163.java new file mode 100644 index 0000000..8a0f774 --- /dev/null +++ b/tisobe/src/B163.java @@ -0,0 +1,51 @@ +package tisobe.src; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Scanner; + +public class B163 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + final int PIC_HEIGHT = sc.nextInt(); + final int PIC_WIDTH = sc.nextInt(); + + //入力値から山の作成 + String[][] mountain = new String[PIC_HEIGHT][PIC_WIDTH]; + for (int i = 0; i < PIC_HEIGHT; i++) { + mountain[i] = sc.next().split(""); + } + + int mtHuge = calcMtHuge(mountain, PIC_HEIGHT, PIC_WIDTH); + System.out.println(mtHuge); + sc.close(); + } + /** + * moutainから山の大きさをリストに格納し、最大値を返却 + * + * @Param countOne mountainの中の"1"の数 (山が存在する部分を数えた数) + * @Param countZero mountainの中の"0"の数 (山が存在しない部分を数えた数) + * mtHugeList 山の大きさを格納したリスト + * @return mtHuge中の最大値 (一番大きな山の大きさ) + */ + public static int calcMtHuge(final String[][] mountain, final int mtHeight, final int mtWidth) { + ArrayList mtHugeList = new ArrayList(); + int countOne = 0; + int countZero = 0; + for (int i = 0; i < mtWidth; i++) { + countZero = 0; + for (int j = 0; j < mtHeight; j++) { + if (mountain[j][i].equals("1")) { + countOne += 1; + } else { + countZero += 1; + } + } + if (countZero == mtHeight) { + countOne = 0; + } + mtHugeList.add(countOne); + } + return Collections.max(mtHugeList); + } +} -- GitLab From 0c7736426aeab8e1568af1fab054c3c90c6d2cde Mon Sep 17 00:00:00 2001 From: isobe Date: Fri, 4 Jul 2025 14:56:46 +0900 Subject: [PATCH 2/2] =?UTF-8?q?PaizaB163=E3=81=AE=E5=9B=9E=E7=AD=94?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tisobe/src/B163.java | 76 ++++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 34 deletions(-) diff --git a/tisobe/src/B163.java b/tisobe/src/B163.java index 8a0f774..6611030 100644 --- a/tisobe/src/B163.java +++ b/tisobe/src/B163.java @@ -1,51 +1,59 @@ package tisobe.src; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; +import java.util.List; import java.util.Scanner; public class B163 { public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - final int PIC_HEIGHT = sc.nextInt(); - final int PIC_WIDTH = sc.nextInt(); + final Scanner sc = new Scanner(System.in); + final int PICTURE_HEIGHT = sc.nextInt(); + final int PICTURE_WIDTH = sc.nextInt(); - //入力値から山の作成 - String[][] mountain = new String[PIC_HEIGHT][PIC_WIDTH]; - for (int i = 0; i < PIC_HEIGHT; i++) { - mountain[i] = sc.next().split(""); + // 入力値から山の作成 + final List> picture = new ArrayList<>(); + for (int i = 0; i < PICTURE_HEIGHT; i++) { + picture.add(Arrays.asList(sc.next().split(""))); } - - int mtHuge = calcMtHuge(mountain, PIC_HEIGHT, PIC_WIDTH); - System.out.println(mtHuge); + Mountain mountain = new Mountain(); + int maxSizeMountain = mountain.calcMtHuge(picture, PICTURE_HEIGHT, PICTURE_WIDTH); + System.out.println(maxSizeMountain); sc.close(); } - /** - * moutainから山の大きさをリストに格納し、最大値を返却 - * - * @Param countOne mountainの中の"1"の数 (山が存在する部分を数えた数) - * @Param countZero mountainの中の"0"の数 (山が存在しない部分を数えた数) - * mtHugeList 山の大きさを格納したリスト - * @return mtHuge中の最大値 (一番大きな山の大きさ) - */ - public static int calcMtHuge(final String[][] mountain, final int mtHeight, final int mtWidth) { - ArrayList mtHugeList = new ArrayList(); - int countOne = 0; - int countZero = 0; - for (int i = 0; i < mtWidth; i++) { - countZero = 0; - for (int j = 0; j < mtHeight; j++) { - if (mountain[j][i].equals("1")) { - countOne += 1; - } else { - countZero += 1; + + public static class Mountain { + final int resetNumber = 0; // countの初期値 + int numOfOne = 0; + int numOfZero = 0; + final List mountainSize = new ArrayList(); + + /** + * pictureから山の大きさをリストに格納し、最大値を返却 + * + * @Param numOfOne mountainの中の"1"の数 (山が存在する部分を数えた数) + * @Param numOfZero mountainの中の"0"の数 (山が存在しない部分を数えた数) mtHugeList 山の大きさを格納したリスト + * @return mountainSize中の最大値 (一番大きな山の大きさ) + */ + public int calcMtHuge(final List> mountain, final int mtHeight, + final int mtWidth) { + for (int x = 0; x < mtWidth; x++) { + numOfZero = resetNumber; + for (int y = 0; y < mtHeight; y++) { + if (mountain.get(y).get(x).equals("1")) { + numOfOne += 1; + } else { + numOfZero += 1; + } } + if (numOfZero == mtHeight) { + numOfOne = 0; + } + mountainSize.add(numOfOne); } - if (countZero == mtHeight) { - countOne = 0; - } - mtHugeList.add(countOne); + return Collections.max(mountainSize); } - return Collections.max(mtHugeList); + } } -- GitLab