From 78d03360a6b220620764646ef538ee012c34f904 Mon Sep 17 00:00:00 2001 From: lhh94 Date: Mon, 24 Mar 2025 23:51:43 +0900 Subject: [PATCH 1/4] =?UTF-8?q?main,Car,=20racing=20=EB=AF=B8=EC=99=84?= =?UTF-8?q?=EC=84=B1,,?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 17 +++++++++++++ src/main/java/racingcar/Car.java | 25 +++++++++++++++++++ src/main/java/racingcar/racing.java | 31 ++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 src/main/java/racingcar/Car.java create mode 100644 src/main/java/racingcar/racing.java diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e7..5518f45f 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,24 @@ package racingcar; +import javax.lang.model.element.Name; +import java.util.Scanner; +import java.util.ArrayList; +import static camp.nextstep.edu.missionutils.Console.readLine; public class Application { public static void main(String[] args) { // TODO: 프로그램 구현 + ArrayList cars = new ArrayList<>(); + System.out.println("경주할 자동차 이름을 입력하세요."); + String name = readLine(); + String[] Name = name.split(","); + for(String n: Name){ + Car car= new Car(n); + cars.add(car); + } + System.out.println("시도할 회수는 몇회인가요?"); + int Count = Integer.parseInt(readLine()); + + racing race = new racing(); + race.racing(cars, Count); } } diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/Car.java new file mode 100644 index 00000000..3a135251 --- /dev/null +++ b/src/main/java/racingcar/Car.java @@ -0,0 +1,25 @@ +package racingcar; +import camp.nextstep.edu.missionutils.Randoms; + +public class Car { + protected String Name; + protected String Distance; + public Car(String Name) { + if (Name == null || Name.length() > 5) + throw new IllegalArgumentException(); + this.Name = Name; + this.Distance = ""; + } + + void move(){ + int num = Randoms.pickNumberInRange(0,9); + if(num>4){ + for (int i=0; i cars, Integer count) { + for (int i = 0; i < count; i++) { + for (Car c : cars) { + c.move(); + System.out.println(c.Name + " : " + c.Distance); + } + } + + int max = 0; + for (Car c : cars) { + if (c.Distance.length() > max) { + max = c.Distance.length(); + } + } + ArrayList names = new ArrayList<>(); + for (Car c : cars) { + if (c.Distance.length() == max) { + names.add(c.Name); + } + } + + System.out.println("최종 우승자:" + String.join(",", names)); + + } +} + From 9851b365b4ebf2726016a4e9cc1af23720af6103 Mon Sep 17 00:00:00 2001 From: lhh94 Date: Mon, 31 Mar 2025 20:41:39 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EC=8B=A4=ED=96=89=20main(=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=EC=9E=90=20=EC=9E=85=EB=A0=A5=20=EB=B0=9B=EA=B3=A0=20?= =?UTF-8?q?=EA=B2=BD=EC=A3=BC=20=EC=8B=A4=ED=96=89=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 5518f45f..0c61e1d5 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,8 @@ package racingcar; -import javax.lang.model.element.Name; -import java.util.Scanner; + import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import static camp.nextstep.edu.missionutils.Console.readLine; public class Application { @@ -10,15 +11,19 @@ public static void main(String[] args) { ArrayList cars = new ArrayList<>(); System.out.println("경주할 자동차 이름을 입력하세요."); String name = readLine(); - String[] Name = name.split(","); - for(String n: Name){ - Car car= new Car(n); + + // 피드백: 배열 → List으로 바꿈 + List nameList = Arrays.asList(name.split(",")); + + for (String n : nameList) { // 피드백: 배열 → List으로 바꿈 + Car car = new Car(n); cars.add(car); } + System.out.println("시도할 회수는 몇회인가요?"); - int Count = Integer.parseInt(readLine()); + int count = Integer.parseInt(readLine()); - racing race = new racing(); - race.racing(cars, Count); + Racing race = new Racing(); + race.startRace(cars, count); } } From 19b4a5f65450d92c25bf1defdce67c05880f5592 Mon Sep 17 00:00:00 2001 From: lhh94 Date: Mon, 31 Mar 2025 20:43:03 +0900 Subject: [PATCH 3/4] =?UTF-8?q?Car=20Class=20(=EC=9E=90=EB=8F=99=EC=B0=A8?= =?UTF-8?q?=20=EA=B0=9D=EC=B2=B4=EC=9D=98=20=EC=9D=B4=EB=A6=84,=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=EC=9D=84=20=EC=BA=A1=EC=8A=90=ED=99=94?= =?UTF-8?q?=ED=95=9C=20=ED=81=B4=EB=9E=98=EC=8A=A4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Car.java | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/Car.java index 3a135251..1fc07209 100644 --- a/src/main/java/racingcar/Car.java +++ b/src/main/java/racingcar/Car.java @@ -2,24 +2,34 @@ import camp.nextstep.edu.missionutils.Randoms; public class Car { - protected String Name; - protected String Distance; + private static final int MOVE_THRESHOLD = 4; // 피드백: 4를 의미있는 상수로 + protected String name; + private String distance; + public Car(String Name) { if (Name == null || Name.length() > 5) throw new IllegalArgumentException(); - this.Name = Name; - this.Distance = ""; + this.name = Name; + this.distance = ""; } - void move(){ - int num = Randoms.pickNumberInRange(0,9); - if(num>4){ - for (int i=0; i= MOVE_THRESHOLD) { + this.distance += "-"; } + } + public String getName() { + return name; + } + + public String getDistance() { + return distance; + } + public int getDistanceLength() { + return distance.length(); } } From 4a9a48deb052c8d858cf4ed1f8ad3a882588b17b Mon Sep 17 00:00:00 2001 From: lhh94 Date: Mon, 31 Mar 2025 20:44:35 +0900 Subject: [PATCH 4/4] =?UTF-8?q?Racing=20Class(=EC=A3=BC=EC=96=B4=EC=A7=84?= =?UTF-8?q?=20=ED=9A=9F=EC=88=98=EB=A7=8C=ED=81=BC=20=EC=9E=90=EB=8F=99?= =?UTF-8?q?=EC=B0=A8=20=EC=A0=84=EC=A7=84,=20=EC=B5=9C=EC=A2=85=20?= =?UTF-8?q?=EC=9A=B0=EC=8A=B9=EC=9E=90=20=ED=8C=90=EA=B2=B0,=20=EA=B2=BD?= =?UTF-8?q?=EC=A3=BC=20=EC=A7=84=ED=96=89=20=ED=81=B4=EB=9E=98=EC=8A=A4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Racing.java | 31 +++++++++++++++++++++++++++++ src/main/java/racingcar/racing.java | 31 ----------------------------- 2 files changed, 31 insertions(+), 31 deletions(-) create mode 100644 src/main/java/racingcar/Racing.java delete mode 100644 src/main/java/racingcar/racing.java diff --git a/src/main/java/racingcar/Racing.java b/src/main/java/racingcar/Racing.java new file mode 100644 index 00000000..5196b215 --- /dev/null +++ b/src/main/java/racingcar/Racing.java @@ -0,0 +1,31 @@ +package racingcar; + +import java.util.ArrayList; + +public class Racing { + public void startRace(ArrayList cars, Integer count) { + for (int i = 0; i < count; i++) { + for (Car c : cars) { + c.move(); + System.out.println(c.getName() + " : " + c.getDistance()); + } + System.out.println(); + } + + int max = 0; + for (Car c : cars) { + if (c.getDistanceLength() > max) { + max = c.getDistanceLength(); + } + } + + ArrayList names = new ArrayList<>(); + for (Car c : cars) { + if (c.getDistanceLength() == max) { + names.add(c.getName()); + } + } + + System.out.println("최종 우승자 : " + String.join(",", names)); + } +} diff --git a/src/main/java/racingcar/racing.java b/src/main/java/racingcar/racing.java deleted file mode 100644 index fb1bf55b..00000000 --- a/src/main/java/racingcar/racing.java +++ /dev/null @@ -1,31 +0,0 @@ -package racingcar; - -import java.util.ArrayList; - -public class racing { - public void racing(ArrayList cars, Integer count) { - for (int i = 0; i < count; i++) { - for (Car c : cars) { - c.move(); - System.out.println(c.Name + " : " + c.Distance); - } - } - - int max = 0; - for (Car c : cars) { - if (c.Distance.length() > max) { - max = c.Distance.length(); - } - } - ArrayList names = new ArrayList<>(); - for (Car c : cars) { - if (c.Distance.length() == max) { - names.add(c.Name); - } - } - - System.out.println("최종 우승자:" + String.join(",", names)); - - } -} -