diff --git a/rtanaka/src/B136.java b/rtanaka/src/B136.java new file mode 100644 index 0000000000000000000000000000000000000000..3b6e4691c026f2acb9849efe1481f82de212b481 --- /dev/null +++ b/rtanaka/src/B136.java @@ -0,0 +1,81 @@ + +/** + * チョコの獲得数を表示するjavaファイル + * @author 田中亮汰 + * @version 3.0 + */ + +import java.util.Scanner; + +public class B136 { + + public static void main(final String[] args) { + // 入力 + Scanner scan = new Scanner(System.in); + + final int MOVING_TIMES = scan.nextInt();// 行動回数 + final int SEAT_ROW = scan.nextInt(); // 座席最大行 + final int SEAT_COLUMN = scan.nextInt(); // 座席最大列 + + int seatNumX = scan.nextInt();// 初期位置取得 + int seatNumY = scan.nextInt(); + scan.nextLine();// 改行文字の消費 + + CurrentPosition store = new CurrentPosition(seatNumX, seatNumY); + + final String MOVING_DIRECTION = scan.nextLine();// 移動方向の文字列 + + // 座席に対する獲得チョコ数を保存 + final int[][] chocolateCount = new int[SEAT_ROW][SEAT_COLUMN]; + for (int i = 0; i < SEAT_ROW; i++) { + for (int j = 0; j < SEAT_COLUMN; j++) { + chocolateCount[i][j] = scan.nextInt(); + } + } + scan.close(); + + // 計算 移動先で獲得したチョコ数を配列に入力 + final char FRONT = 'F'; + final char BACK = 'B'; + final char RIGHT = 'R'; + final char LEFT = 'L'; + int[] chocolateOutPut = new int[MOVING_TIMES]; + + for (int i = 0; i < MOVING_TIMES; i++) { + switch (movingChar(MOVING_DIRECTION, i)) { + case FRONT: + store.moveFront(); + break; + case BACK: + store.moveBack(); + break; + case RIGHT: + store.moveRight(); + break; + case LEFT: + store.moveLeft(); + break; + } + + chocolateOutPut[i] = chocolateCount[store.getSeatNumX()][store.getSeatNumY()]; + } + + // 出力 + for (int num : chocolateOutPut) { + System.out.println(num); + } + } + + /** + * 移動方向の文字列を1文字ずつに分離 + * + * @param movingdirection 文字列を受け取る + * @param i i番目の文字を分離するカウント目的 + * @return i番目の文字を返す + */ + public static char movingChar(final String movingDirection, int i) { + char movingDirectionChar = movingDirection.charAt(i); + return movingDirectionChar; + } + +} \ No newline at end of file diff --git a/rtanaka/src/CurrentPosition.java b/rtanaka/src/CurrentPosition.java new file mode 100644 index 0000000000000000000000000000000000000000..a950f20494492160074b8b394c42e2dabff2ea37 --- /dev/null +++ b/rtanaka/src/CurrentPosition.java @@ -0,0 +1,43 @@ +/** + * 現在の座席位置を操作保持するクラスファイル + * + * @author 田中亮汰 + * @version 1.0 + */ + +public class CurrentPosition { + private int seatNumX, seatNumY; + + public CurrentPosition(int seatNumX, int seatNumY) { + this.seatNumX = seatNumX - 1; + this.seatNumY = seatNumY - 1; + } + + public CurrentPosition() { + } + + public int getSeatNumX() { + return seatNumX; + } + + public int getSeatNumY() { + return seatNumY; + } + + /*動きを保存するメソッド*/ + public void moveFront() { + seatNumX -= 1; + } + + public void moveBack() { + seatNumX += 1; + } + + public void moveRight() { + seatNumY += 1; + } + + public void moveLeft() { + seatNumY -= 1; + } +}