diff --git a/tisobe/src/B163.java b/tisobe/src/B163.java new file mode 100644 index 0000000000000000000000000000000000000000..6611030cd2d385db424ddfa2ec288fe369887fe0 --- /dev/null +++ b/tisobe/src/B163.java @@ -0,0 +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) { + final Scanner sc = new Scanner(System.in); + final int PICTURE_HEIGHT = sc.nextInt(); + final int PICTURE_WIDTH = sc.nextInt(); + + // 入力値から山の作成 + final List> picture = new ArrayList<>(); + for (int i = 0; i < PICTURE_HEIGHT; i++) { + picture.add(Arrays.asList(sc.next().split(""))); + } + Mountain mountain = new Mountain(); + int maxSizeMountain = mountain.calcMtHuge(picture, PICTURE_HEIGHT, PICTURE_WIDTH); + System.out.println(maxSizeMountain); + sc.close(); + } + + 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); + } + return Collections.max(mountainSize); + } + + } +}