diff --git a/rsuzuki/README.md b/rsuzuki/README.md new file mode 100644 index 0000000000000000000000000000000000000000..796c95d353f961f632c60d81ef2bdf62fa8ea5ff --- /dev/null +++ b/rsuzuki/README.md @@ -0,0 +1,2 @@ +# Paiza +knoda用 diff --git a/rsuzuki/src/C014_ball.java b/rsuzuki/src/C014_ball.java new file mode 100644 index 0000000000000000000000000000000000000000..1da654b82f76ba2e27fc364e177fbc6adf3f7bf9 --- /dev/null +++ b/rsuzuki/src/C014_ball.java @@ -0,0 +1,99 @@ +package paiza_c; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +/** 箱とボールのデータを保持するクラス */ +final class BoxData { + /** 箱の数 */ + private final int boxNumber; + /** ボール半径 */ + private final int ballRadius; + /** [箱のインデックス][高さ、幅、奥行き] */ + private final int[][] boxDimensions; + + public BoxData(int boxNumber, int ballRadius, int[][] boxDimensions) { + this.boxNumber = boxNumber; + this.ballRadius = ballRadius; + this.boxDimensions = boxDimensions; + } + + public int getBoxNumber() { + return boxNumber; + } + + public int getBallRadius() { + return ballRadius; + } + + public int[][] getBoxDimensions() { + return boxDimensions; + } +} + +/** ロジック */ +final class BallLogic { + /** ボールの直径 */ + private int ballDimensions; + /** ボールが入る箱を格納する配列 */ + private List fitBoxnumber; + + public BallLogic(int radius) { + this.ballDimensions = 2 * radius; + this.fitBoxnumber = new ArrayList<>(); + } + + /** 辺の中で一番小さい値とボールの直径を比較 */ + public void compare(int number, int height, int width, int depth) { + int min = Math.min(height, Math.min(width, depth)); + + if (min >= ballDimensions) { + fitBoxnumber.add(number); + } + } + + /** 出力 */ + public void printNumber() { + for (int i = 0; i < fitBoxnumber.size(); i++) { + System.out.println(fitBoxnumber.get(i)); + } + } +} + +public class C014_ball { + + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + + int boxNumber = scanner.nextInt(); + int ballRadius = scanner.nextInt(); + + int[][] boxDimensions = new int[boxNumber][3]; + + for (int i = 0; i < boxNumber; i++) { + boxDimensions[i][0] = scanner.nextInt(); // 高さ + boxDimensions[i][1] = scanner.nextInt(); // 幅 + boxDimensions[i][2] = scanner.nextInt(); // 奥行き + } + scanner.close(); + + /** データを保持するクラスにセット */ + BoxData boxData = new BoxData(boxNumber, ballRadius, boxDimensions); + + final BallLogic logic = new BallLogic(ballRadius); + + for (int i = 0; i < boxData.getBoxNumber(); i++) { + int boxnumber = i + 1; + int height = boxDimensions[i][0]; + int width = boxDimensions[i][1]; + int depth = boxDimensions[i][2]; + + logic.compare(boxnumber, height, width, depth); + } + + logic.printNumber(); + + } + +}