From 90bca0c245cc7cc7963e2aaf6b3a0a0e8be6d75a Mon Sep 17 00:00:00 2001 From: rtanaka Date: Tue, 1 Jul 2025 17:48:19 +0900 Subject: [PATCH 1/5] =?UTF-8?q?paiza=E3=81=AE=E5=95=8F=E9=A1=8CB136?= =?UTF-8?q?=E3=81=AE=E5=9B=9E=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtanaka/src/B136.java | 69 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 rtanaka/src/B136.java diff --git a/rtanaka/src/B136.java b/rtanaka/src/B136.java new file mode 100644 index 0000000..aec5abe --- /dev/null +++ b/rtanaka/src/B136.java @@ -0,0 +1,69 @@ +/** + * チョコの獲得数を表示するjavaファイル + * @author 田中亮汰 + * @version 1.0 + */ + +import java.util.Scanner; + +public class B136 { + + public static void main(String[] args) { + Scanner scan = new Scanner(System.in); + + int movingTimes = scan.nextInt();//行動回数 + int seatRow = scan.nextInt(); //座席最大行 + int seatColumn = scan.nextInt(); //座席最大列 + + int seatNumX = scan.nextInt() - 1,//現在地保持 + seatNumY = scan.nextInt() - 1; + scan.nextLine();//改行文字の消費 + + String movingDirection = scan.nextLine();//移動方向の文字列 + + //座席に対する獲得チョコ数を保存 + int[][] chocolateCount = new int[seatRow][seatColumn]; + for (int i = 0; i < seatRow; i++) { + for (int j = 0; j < seatColumn; j++) { + chocolateCount[i][j] = scan.nextInt(); + } + } + + //移動先で獲得したチョコ数を表示 + for (int i = 0; i < movingTimes; i++) { + char a = Moving(movingDirection, i); + switch (a) { + case 'F': + seatNumX -= 1; + break; + case 'B': + seatNumX += 1; + break; + case 'R': + seatNumY += 1; + break; + case 'L': + seatNumY -= 1; + + break; + } + System.out.println(chocolateCount[seatNumX][seatNumY]); + + } + scan.close(); + + } + /** + * + * 移動方向の文字列を1文字ずつに分離 + * + * @param movingdirection 文字列を受け取る + * @param i i番目の文字を分離するカウント目的 + * @return i番目の文字を返す + */ + public static char Moving(String movingDirection, int i) { + char movingDirectionChar = movingDirection.charAt(i); + return movingDirectionChar; + } + +} \ No newline at end of file -- GitLab From 11ecc9cab9009208368a018d413addd915ade82c Mon Sep 17 00:00:00 2001 From: rtanaka Date: Wed, 2 Jul 2025 13:10:28 +0900 Subject: [PATCH 2/5] =?UTF-8?q?paiza=E3=81=AE=E5=95=8F=E9=A1=8CB136?= =?UTF-8?q?=E3=81=AE=E8=AA=B2=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtanaka/src/B136.java | 85 +++++++++++++++++++++++--------------- rtanaka/src/DataStore.java | 25 +++++++++++ 2 files changed, 76 insertions(+), 34 deletions(-) create mode 100644 rtanaka/src/DataStore.java diff --git a/rtanaka/src/B136.java b/rtanaka/src/B136.java index aec5abe..d328301 100644 --- a/rtanaka/src/B136.java +++ b/rtanaka/src/B136.java @@ -8,62 +8,79 @@ import java.util.Scanner; public class B136 { - public static void main(String[] args) { + public static void main(final String[] args) { + //入力 Scanner scan = new Scanner(System.in); - int movingTimes = scan.nextInt();//行動回数 - int seatRow = scan.nextInt(); //座席最大行 - int seatColumn = scan.nextInt(); //座席最大列 + final int MOVING_TIMES = scan.nextInt();//行動回数 + final int SEAT_ROW = scan.nextInt(); //座席最大行 + final int SEAT_COLUMN = scan.nextInt(); //座席最大列 - int seatNumX = scan.nextInt() - 1,//現在地保持 - seatNumY = scan.nextInt() - 1; - scan.nextLine();//改行文字の消費 + int seatNumX = scan.nextInt();//初期位置取得 + int seatNumY = scan.nextInt(); + scan.nextLine();//改行文字の消費 + + DataStore store = new DataStore(seatNumX,seatNumY); - String movingDirection = scan.nextLine();//移動方向の文字列 + final String MOVING_DIRECTION = scan.nextLine();//移動方向の文字列 //座席に対する獲得チョコ数を保存 - int[][] chocolateCount = new int[seatRow][seatColumn]; - for (int i = 0; i < seatRow; i++) { - for (int j = 0; j < seatColumn; j++) { + 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(); } } + //計算と出力 //移動先で獲得したチョコ数を表示 - for (int i = 0; i < movingTimes; i++) { - char a = Moving(movingDirection, i); - switch (a) { - case 'F': - seatNumX -= 1; - break; - case 'B': - seatNumX += 1; - break; - case 'R': - seatNumY += 1; - break; - case 'L': - seatNumY -= 1; - - break; - } - System.out.println(chocolateCount[seatNumX][seatNumY]); - + for (int i = 0; i < MOVING_TIMES; i++) { + movingStore(movingChar(MOVING_DIRECTION, i),store); + System.out.println(chocolateCount[store.getSeatNumX()][store.getSeatNumY()]); } scan.close(); - } /** - * * 移動方向の文字列を1文字ずつに分離 * * @param movingdirection 文字列を受け取る * @param i i番目の文字を分離するカウント目的 * @return i番目の文字を返す - */ - public static char Moving(String movingDirection, int i) { + */ + public static char movingChar(final String movingDirection, int i) { char movingDirectionChar = movingDirection.charAt(i); return movingDirectionChar; } + + /** + * 入力された文字に対しての移動を + * + * @param MOVING_DIRECTION_CHAR movingメソッドで得た一文字 + * @param store インスタンスの受け渡し + */ + public static void movingStore(final char MOVING_DIRECTION_CHAR, final DataStore store) { + + final char FRONT = 'F'; + final char BACK = 'B'; + final char RIGHT = 'R'; + final char LEFT = 'L'; + + switch (MOVING_DIRECTION_CHAR) { + case FRONT: + store.setSeatNumX(store.getSeatNumX() - 1); + break; + case BACK: + store.setSeatNumX(store.getSeatNumX() + 1); + break; + case RIGHT: + store.setSeatNumY(store.getSeatNumY() + 1); + break; + case LEFT: + store.setSeatNumY(store.getSeatNumY() - 1); + break; + } + } + + } \ No newline at end of file diff --git a/rtanaka/src/DataStore.java b/rtanaka/src/DataStore.java new file mode 100644 index 0000000..44eaa45 --- /dev/null +++ b/rtanaka/src/DataStore.java @@ -0,0 +1,25 @@ +public class DataStore { + private int seatNumX,seatNumY; + + public DataStore(int seatNumX, int seatNumY) { + this.seatNumX = seatNumX-1; + this.seatNumY = seatNumY-1; + } + + public DataStore() { + } + + public int getSeatNumX(){ + return seatNumX; + } + public int getSeatNumY(){ + return seatNumY; + } + + public void setSeatNumX(int seatNumX){ + this.seatNumX = seatNumX; + } + public void setSeatNumY(int seatNumY){ + this.seatNumY = seatNumY; + } +} -- GitLab From e1dbe9706b435a049a1e434d8bfb032cc6abfa47 Mon Sep 17 00:00:00 2001 From: rtanaka Date: Wed, 2 Jul 2025 14:29:03 +0900 Subject: [PATCH 3/5] =?UTF-8?q?paiza=E3=81=AE=E5=95=8F=E9=A1=8CB136?= =?UTF-8?q?=E3=81=AE=E8=AA=B2=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtanaka/src/B136.java | 69 ++++++++++++++------------------ rtanaka/src/CurrentPosition.java | 50 +++++++++++++++++++++++ rtanaka/src/DataStore.java | 25 ------------ 3 files changed, 81 insertions(+), 63 deletions(-) create mode 100644 rtanaka/src/CurrentPosition.java delete mode 100644 rtanaka/src/DataStore.java diff --git a/rtanaka/src/B136.java b/rtanaka/src/B136.java index d328301..768a5c7 100644 --- a/rtanaka/src/B136.java +++ b/rtanaka/src/B136.java @@ -1,7 +1,7 @@ /** * チョコの獲得数を表示するjavaファイル * @author 田中亮汰 - * @version 1.0 + * @version 2.0 */ import java.util.Scanner; @@ -20,7 +20,7 @@ public class B136 { int seatNumY = scan.nextInt(); scan.nextLine();//改行文字の消費 - DataStore store = new DataStore(seatNumX,seatNumY); + CurrentPosition store = new CurrentPosition(seatNumX,seatNumY); final String MOVING_DIRECTION = scan.nextLine();//移動方向の文字列 @@ -31,14 +31,38 @@ public class B136 { 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++) { - movingStore(movingChar(MOVING_DIRECTION, i),store); - System.out.println(chocolateCount[store.getSeatNumX()][store.getSeatNumY()]); + 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); } - scan.close(); } /** * 移動方向の文字列を1文字ずつに分離 @@ -51,36 +75,5 @@ public class B136 { char movingDirectionChar = movingDirection.charAt(i); return movingDirectionChar; } - - /** - * 入力された文字に対しての移動を - * - * @param MOVING_DIRECTION_CHAR movingメソッドで得た一文字 - * @param store インスタンスの受け渡し - */ - public static void movingStore(final char MOVING_DIRECTION_CHAR, final DataStore store) { - - final char FRONT = 'F'; - final char BACK = 'B'; - final char RIGHT = 'R'; - final char LEFT = 'L'; - - switch (MOVING_DIRECTION_CHAR) { - case FRONT: - store.setSeatNumX(store.getSeatNumX() - 1); - break; - case BACK: - store.setSeatNumX(store.getSeatNumX() + 1); - break; - case RIGHT: - store.setSeatNumY(store.getSeatNumY() + 1); - break; - case LEFT: - store.setSeatNumY(store.getSeatNumY() - 1); - break; - } - } - - } \ No newline at end of file diff --git a/rtanaka/src/CurrentPosition.java b/rtanaka/src/CurrentPosition.java new file mode 100644 index 0000000..eb41233 --- /dev/null +++ b/rtanaka/src/CurrentPosition.java @@ -0,0 +1,50 @@ +/** + * 現在の座席位置を操作保持するクラスファイル + * + * @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 setSeatNumX(int seatNumX) { + this.seatNumX = seatNumX; + } + + public void setSeatNumY(int seatNumY) { + this.seatNumY = seatNumY; + } + + public void moveFront() { + setSeatNumX(getSeatNumX() - 1); + } + + public void moveBack() { + setSeatNumX(getSeatNumX() + 1); + } + + public void moveRight() { + setSeatNumY(getSeatNumY() + 1); + } + + public void moveLeft() { + setSeatNumY(getSeatNumY() - 1); + } +} diff --git a/rtanaka/src/DataStore.java b/rtanaka/src/DataStore.java deleted file mode 100644 index 44eaa45..0000000 --- a/rtanaka/src/DataStore.java +++ /dev/null @@ -1,25 +0,0 @@ -public class DataStore { - private int seatNumX,seatNumY; - - public DataStore(int seatNumX, int seatNumY) { - this.seatNumX = seatNumX-1; - this.seatNumY = seatNumY-1; - } - - public DataStore() { - } - - public int getSeatNumX(){ - return seatNumX; - } - public int getSeatNumY(){ - return seatNumY; - } - - public void setSeatNumX(int seatNumX){ - this.seatNumX = seatNumX; - } - public void setSeatNumY(int seatNumY){ - this.seatNumY = seatNumY; - } -} -- GitLab From e1291a75dc3e455f1f3f4cac9cb295f6dda51eb7 Mon Sep 17 00:00:00 2001 From: rtanaka Date: Wed, 2 Jul 2025 14:34:18 +0900 Subject: [PATCH 4/5] =?UTF-8?q?paiza=E3=81=AE=E5=95=8F=E9=A1=8CB136?= =?UTF-8?q?=E3=81=AE=E8=AA=B2=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtanaka/src/B136.java | 58 ++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/rtanaka/src/B136.java b/rtanaka/src/B136.java index 768a5c7..4f7304b 100644 --- a/rtanaka/src/B136.java +++ b/rtanaka/src/B136.java @@ -1,3 +1,4 @@ + /** * チョコの獲得数を表示するjavaファイル * @author 田中亮汰 @@ -9,22 +10,22 @@ 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 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 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++) { @@ -32,16 +33,16 @@ public class B136 { } } scan.close(); - - //計算 移動先で獲得したチョコ数を配列に入力 + + // 計算 移動先で獲得したチョコ数を配列に入力 final char FRONT = 'F'; final char BACK = 'B'; final char RIGHT = 'R'; final char LEFT = 'L'; - int[] chocolateOutPut = new int [MOVING_TIMES]; - + int[] chocolateOutPut = new int[MOVING_TIMES]; + for (int i = 0; i < MOVING_TIMES; i++) { - switch(movingChar(MOVING_DIRECTION, i)) { + switch (movingChar(MOVING_DIRECTION, i)) { case FRONT: store.moveFront(); break; @@ -55,21 +56,22 @@ public class B136 { store.moveLeft(); break; } - - chocolateOutPut[i] =chocolateCount[store.getSeatNumX()][store.getSeatNumY()]; + + chocolateOutPut[i] = chocolateCount[store.getSeatNumX()][store.getSeatNumY()]; } - - //出力 - for(int num : chocolateOutPut) { + + // 出力 + for (int num : chocolateOutPut) { System.out.println(num); } } + /** - * 移動方向の文字列を1文字ずつに分離 - * - * @param movingdirection 文字列を受け取る - * @param i i番目の文字を分離するカウント目的 - * @return i番目の文字を返す + * 移動方向の文字列を1文字ずつに分離 + * + * @param movingdirection 文字列を受け取る + * @param i i番目の文字を分離するカウント目的 + * @return i番目の文字を返す */ public static char movingChar(final String movingDirection, int i) { char movingDirectionChar = movingDirection.charAt(i); -- GitLab From 6db6e6cc2310ff3a8d7e6c692c8abcad654f2bf2 Mon Sep 17 00:00:00 2001 From: rtanaka Date: Wed, 2 Jul 2025 16:26:18 +0900 Subject: [PATCH 5/5] =?UTF-8?q?paiza=E3=81=AE=E5=95=8F=E9=A1=8CB136?= =?UTF-8?q?=E3=81=AE=E8=AA=B2=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtanaka/src/B136.java | 2 +- rtanaka/src/CurrentPosition.java | 19 ++++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/rtanaka/src/B136.java b/rtanaka/src/B136.java index 4f7304b..3b6e469 100644 --- a/rtanaka/src/B136.java +++ b/rtanaka/src/B136.java @@ -2,7 +2,7 @@ /** * チョコの獲得数を表示するjavaファイル * @author 田中亮汰 - * @version 2.0 + * @version 3.0 */ import java.util.Scanner; diff --git a/rtanaka/src/CurrentPosition.java b/rtanaka/src/CurrentPosition.java index eb41233..a950f20 100644 --- a/rtanaka/src/CurrentPosition.java +++ b/rtanaka/src/CurrentPosition.java @@ -23,28 +23,21 @@ public class CurrentPosition { public int getSeatNumY() { return seatNumY; } - - public void setSeatNumX(int seatNumX) { - this.seatNumX = seatNumX; - } - - public void setSeatNumY(int seatNumY) { - this.seatNumY = seatNumY; - } - + + /*動きを保存するメソッド*/ public void moveFront() { - setSeatNumX(getSeatNumX() - 1); + seatNumX -= 1; } public void moveBack() { - setSeatNumX(getSeatNumX() + 1); + seatNumX += 1; } public void moveRight() { - setSeatNumY(getSeatNumY() + 1); + seatNumY += 1; } public void moveLeft() { - setSeatNumY(getSeatNumY() - 1); + seatNumY -= 1; } } -- GitLab