From c98bc19f3c0484dc70626f1d01510650b4f8af62 Mon Sep 17 00:00:00 2001 From: Soe-Yujeong Date: Thu, 20 Mar 2025 12:13:50 +0900 Subject: [PATCH 1/5] =?UTF-8?q?Car=20=EC=9D=B4=EB=A6=84=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=EB=B0=9B=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Car.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/main/java/racingcar/Car.java diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/Car.java new file mode 100644 index 00000000..7ab56640 --- /dev/null +++ b/src/main/java/racingcar/Car.java @@ -0,0 +1,20 @@ +package racingcar; + +import java.util.Scanner; + +public class Car { + String carName; + int position = 0; + + Scanner sc = new Scanner(System.in); + + public Car(String carName, int position){ + this.carName = carName; + this.position = position; + } + + public void writeName(String carName){ + carName = sc.nextLine(); + String[] carArr = carName.split(","); + } +} From c217cc6998795ae8dba55404be7c24ae045001f9 Mon Sep 17 00:00:00 2001 From: Soe-Yujeong Date: Fri, 21 Mar 2025 10:27:33 +0900 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20moveCar=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Car.java | 33 ++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/Car.java index 7ab56640..dbab30d0 100644 --- a/src/main/java/racingcar/Car.java +++ b/src/main/java/racingcar/Car.java @@ -1,20 +1,33 @@ package racingcar; -import java.util.Scanner; +import java.util.ArrayList; +import java.util.List; +import static camp.nextstep.edu.missionutils.Console.readLine; +import static camp.nextstep.edu.missionutils.Randoms.pickNumberInRange; public class Car { - String carName; - int position = 0; - Scanner sc = new Scanner(System.in); + public String getCar(String carName){ + return carName; + } + + public void writeName(){ //차 이름 받기 + String cars = readLine(); + String[] carArr = cars.split(","); + List carList = new ArrayList<>(); - public Car(String carName, int position){ - this.carName = carName; - this.position = position; + for (int i =0; i < carList.size(); i++){ //리스트에 차 이름 넣기 + carList.get(i); + } } - public void writeName(String carName){ - carName = sc.nextLine(); - String[] carArr = carName.split(","); + public void moveCar(int position){ //차 움직이기 + int rand = pickNumberInRange(1, 9); + + if(rand >= 4){ + position +=1; + } } + + } From a3c8c078c8ed8b3f57878c5a81b3548827928883 Mon Sep 17 00:00:00 2001 From: Soe-Yujeong Date: Mon, 24 Mar 2025 23:38:27 +0900 Subject: [PATCH 3/5] =?UTF-8?q?racingcar=20=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 43 +++++++++++++++++++++++- src/main/java/racingcar/Car.java | 36 ++++++++++---------- 2 files changed, 60 insertions(+), 19 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e7..8a4f1d82 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,48 @@ package racingcar; +import java.util.ArrayList; +import java.util.List; + +import static camp.nextstep.edu.missionutils.Console.readLine; + public class Application { public static void main(String[] args) { - // TODO: 프로그램 구현 + System.out.println("경주할 자동차 이름을 입력하세요. (이름은 쉼표(,) 기준으로 구분)"); + String[] names = readLine().split(","); + List cars = new ArrayList<>(); + + for (String name: names) { + cars.add(new Car(name)); + } + + System.out.println("시도할 횟수는 몇 회인가요?"); + int count = Integer.parseInt(readLine()); + + System.out.println("실행 결과"); + for (int i = 0; i < count; i++) { + for (Car car: cars){ + car.move(); + System.out.println(car.getName() + " : " + car.getPositionToString()); + } + System.out.println(); + } + + int winnerPosition = 0; + + for (Car car: cars){ + if (car.getPosition() > winnerPosition) { + winnerPosition = car.getPosition(); + } + } + + List winCars = new ArrayList<>(); + + for (Car car: cars){ + if (car.getPosition() == winnerPosition) { + winCars.add(car.getName()); + } + } + + System.out.print("최종 우승자 : " + String.join(", ", winCars)); } } diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/Car.java index dbab30d0..5daf0d16 100644 --- a/src/main/java/racingcar/Car.java +++ b/src/main/java/racingcar/Car.java @@ -1,33 +1,33 @@ package racingcar; -import java.util.ArrayList; -import java.util.List; -import static camp.nextstep.edu.missionutils.Console.readLine; import static camp.nextstep.edu.missionutils.Randoms.pickNumberInRange; public class Car { + private String name; + private int position = 0; - public String getCar(String carName){ - return carName; + public Car(String name){ + if (name.length() > 5) { + throw new IllegalArgumentException("오류: 문자열은 최대 5글자까지만 입력할 수 있습니다."); + } + this.name = name; } - public void writeName(){ //차 이름 받기 - String cars = readLine(); - String[] carArr = cars.split(","); - List carList = new ArrayList<>(); - - for (int i =0; i < carList.size(); i++){ //리스트에 차 이름 넣기 - carList.get(i); + public void move(){ + if (pickNumberInRange(0, 9) >= 4) { + position += 1; } } - public void moveCar(int position){ //차 움직이기 - int rand = pickNumberInRange(1, 9); - - if(rand >= 4){ - position +=1; - } + public String getPositionToString(){ + return "-".repeat(position); } + public String getName(){ + return name; + } + public int getPosition() { + return position; + } } From ef0b75082af91b0437779329bc3f1354951e2cfa Mon Sep 17 00:00:00 2001 From: Soe-Yujeong Date: Thu, 27 Mar 2025 15:29:03 +0900 Subject: [PATCH 4/5] =?UTF-8?q?fear=20:=20GameResult=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 21 +++---------------- src/main/java/racingcar/Car.java | 4 ++++ src/main/java/racingcar/GameResult.java | 26 ++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 18 deletions(-) create mode 100644 src/main/java/racingcar/GameResult.java diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 8a4f1d82..d1c15648 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.List; - import static camp.nextstep.edu.missionutils.Console.readLine; public class Application { @@ -27,22 +26,8 @@ public static void main(String[] args) { System.out.println(); } - int winnerPosition = 0; - - for (Car car: cars){ - if (car.getPosition() > winnerPosition) { - winnerPosition = car.getPosition(); - } - } - - List winCars = new ArrayList<>(); - - for (Car car: cars){ - if (car.getPosition() == winnerPosition) { - winCars.add(car.getName()); - } - } - - System.out.print("최종 우승자 : " + String.join(", ", winCars)); + GameResult gameResult = new GameResult(); + gameResult.getWinners(); + System.out.print("최종 우승자 : " + String.join(", ") + gameResult.getWinners()); } } diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/Car.java index 5daf0d16..5c73b479 100644 --- a/src/main/java/racingcar/Car.java +++ b/src/main/java/racingcar/Car.java @@ -13,6 +13,10 @@ public Car(String name){ this.name = name; } + public Car(int position){ + this.position = position; + } + public void move(){ if (pickNumberInRange(0, 9) >= 4) { position += 1; diff --git a/src/main/java/racingcar/GameResult.java b/src/main/java/racingcar/GameResult.java new file mode 100644 index 00000000..1c766732 --- /dev/null +++ b/src/main/java/racingcar/GameResult.java @@ -0,0 +1,26 @@ +package racingcar; + +import java.util.ArrayList; +import java.util.List; + +public class GameResult { + private List winners; + + public List getWinners() { + int winnerPosition = 0; + + for (Car cars : winners) { + if (cars.getPosition() > winnerPosition) { + winnerPosition = cars.getPosition(); + } + } + + for (Car cars : winners) { + if (cars.getPosition() == winnerPosition) { + winners.add(cars); + } + + } + return winners; + } +} From e8d629c34ea87007a3f806afb2d71c8e615d01b0 Mon Sep 17 00:00:00 2001 From: Soe-Yujeong Date: Mon, 31 Mar 2025 20:54:22 +0900 Subject: [PATCH 5/5] =?UTF-8?q?feat=20:=20GameResult=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/GameResult.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/racingcar/GameResult.java b/src/main/java/racingcar/GameResult.java index 1c766732..645989a3 100644 --- a/src/main/java/racingcar/GameResult.java +++ b/src/main/java/racingcar/GameResult.java @@ -1,6 +1,5 @@ package racingcar; -import java.util.ArrayList; import java.util.List; public class GameResult {