From bb90cf8a5c278c3b50950f4c6b42d9908fcfc08f Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 28 Mar 2026 23:57:02 +0900 Subject: [PATCH 01/12] =?UTF-8?q?feat:=20=EC=8B=9C=EB=8F=84=5F=ED=9A=9F?= =?UTF-8?q?=EC=88=98=5F0=5F=EC=9D=B4=ED=95=98=5F=EC=98=88=EC=99=B8=5F?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 35 +++++++++++++++++++- src/test/java/racingcar/ApplicationTest.java | 3 +- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e..49f7612 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,40 @@ package racingcar; +import java.util.*; + public class Application { + public static void main(String[] args) { // TODO: 프로그램 구현 + Scanner scanner = new Scanner(System.in); + + class Car { + String name; + int score = 0; + + Car(String name) { + this.name = name; + } + } + + ArrayList Cars = new ArrayList<>(); + System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)"); + String input = scanner.nextLine(); + String[] names = input.split(","); + + for(int i = 0; i < names.length; i++){ + Cars.add(new Car(names[i])); + } + + System.out.println("시도할 회수는 몇회인가요?"); + int round = scanner.nextInt(); + if(round <= 0){ + throw new IllegalArgumentException(); + } + + for(int i = 0; i < Cars.size(); i++){ + System.out.println(Cars.get(i).name); + } + System.out.println(round); } -} +} \ No newline at end of file diff --git a/src/test/java/racingcar/ApplicationTest.java b/src/test/java/racingcar/ApplicationTest.java index 03aa74b..6cb1394 100644 --- a/src/test/java/racingcar/ApplicationTest.java +++ b/src/test/java/racingcar/ApplicationTest.java @@ -64,7 +64,8 @@ class ApplicationTest extends NsTest { } @Test - void 시도_횟수_0_이하_예외() { + void + () { assertSimpleTest(() -> assertThatThrownBy(() -> runException("pobi,woni", "0")) .isInstanceOf(IllegalArgumentException.class) From 4d4980a8491f536865990d755b259c0c448f22c6 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 29 Mar 2026 00:10:07 +0900 Subject: [PATCH 02/12] =?UTF-8?q?feat:=20=EC=8B=9C=EB=8F=84=5F=ED=9A=9F?= =?UTF-8?q?=EC=88=98=5F=EC=88=AB=EC=9E=90=5F=EC=95=84=EB=8B=98=5F=EC=98=88?= =?UTF-8?q?=EC=99=B8=5F=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 8 +++++++- src/test/java/racingcar/ApplicationTest.java | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 49f7612..e975c99 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -8,6 +8,7 @@ public static void main(String[] args) { // TODO: 프로그램 구현 Scanner scanner = new Scanner(System.in); + int round; class Car { String name; int score = 0; @@ -27,7 +28,12 @@ class Car { } System.out.println("시도할 회수는 몇회인가요?"); - int round = scanner.nextInt(); + if (scanner.hasNextInt()) { + round = scanner.nextInt(); + } else { + throw new IllegalArgumentException(); + } + if(round <= 0){ throw new IllegalArgumentException(); } diff --git a/src/test/java/racingcar/ApplicationTest.java b/src/test/java/racingcar/ApplicationTest.java index 6cb1394..03aa74b 100644 --- a/src/test/java/racingcar/ApplicationTest.java +++ b/src/test/java/racingcar/ApplicationTest.java @@ -64,8 +64,7 @@ class ApplicationTest extends NsTest { } @Test - void - () { + void 시도_횟수_0_이하_예외() { assertSimpleTest(() -> assertThatThrownBy(() -> runException("pobi,woni", "0")) .isInstanceOf(IllegalArgumentException.class) From 0fdd0c47ad419913a2f252f9bb3fde7b6f628b54 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 29 Mar 2026 00:22:23 +0900 Subject: [PATCH 03/12] =?UTF-8?q?feat:=20=EC=9E=90=EB=8F=99=EC=B0=A8=5F?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=5F5=EC=9E=90=5F=EC=B4=88=EA=B3=BC=5F?= =?UTF-8?q?=EC=98=88=EC=99=B8=5F=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index e975c99..92e4976 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -24,7 +24,11 @@ class Car { String[] names = input.split(","); for(int i = 0; i < names.length; i++){ - Cars.add(new Car(names[i])); + if(names[i].length() > 5){ + throw new IllegalArgumentException(); + } else { + Cars.add(new Car(names[i])); + } } System.out.println("시도할 회수는 몇회인가요?"); From f5cc4a780831f8cbfd5e063b0b8ea1f2f89d0372 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 29 Mar 2026 00:39:17 +0900 Subject: [PATCH 04/12] =?UTF-8?q?feat:=20=EC=9E=90=EB=8F=99=EC=B0=A8=5F?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=5F=EA=B3=B5=EB=B0=B1=5F=ED=8F=AC=ED=95=A8=5F?= =?UTF-8?q?=EC=98=88=EC=99=B8=5F=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 92e4976..55882f2 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -24,7 +24,7 @@ class Car { String[] names = input.split(","); for(int i = 0; i < names.length; i++){ - if(names[i].length() > 5){ + if(names[i].length() > 5 || names[i].contains(" ")){ throw new IllegalArgumentException(); } else { Cars.add(new Car(names[i])); @@ -32,6 +32,7 @@ class Car { } System.out.println("시도할 회수는 몇회인가요?"); + if (scanner.hasNextInt()) { round = scanner.nextInt(); } else { From 9287cb997e6476a663205e31bc83fb3816dd8d0e Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 29 Mar 2026 00:40:49 +0900 Subject: [PATCH 05/12] =?UTF-8?q?feat:=20=EC=9E=90=EB=8F=99=EC=B0=A8=5F?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=5F=EB=B9=88=EA=B0=92=5F=EC=98=88=EC=99=B8=5F?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 55882f2..66f39af 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -24,7 +24,7 @@ class Car { String[] names = input.split(","); for(int i = 0; i < names.length; i++){ - if(names[i].length() > 5 || names[i].contains(" ")){ + if(names[i].length() > 5 || names[i].contains(" ") || names[i].isEmpty()){ throw new IllegalArgumentException(); } else { Cars.add(new Car(names[i])); From 91902f833f1639c56a0bff327e1ebcc861442a7e Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 29 Mar 2026 01:00:15 +0900 Subject: [PATCH 06/12] =?UTF-8?q?feat:=20=EA=B5=AC=ED=98=84=ED=95=B4?= =?UTF-8?q?=EC=95=BC=ED=95=A0=20=EB=AA=A9=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 14 ++++++++++++++ src/main/java/racingcar/Application.java | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/docs/README.md b/docs/README.md index e69de29..9fbeec9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -0,0 +1,14 @@ +구현해야할 목록 +전진_정지 +자동차_이름_5자_초과_예외_처리 +자동차_이름_공백_포함_예외_처리 +자동차_이름_빈값_예외_처리 +자동차_이름_중복_예외_처리 +시도_횟수_0_이하_예외_처리 +시도_횟수_숫자_아님_예외_처리 +단독_우승자_출력 +공동_우승자_출력 +모든_자동차_멈춤_출력 +여러_라운드_진행_출력 +한대의_자동차만_참가_출력 +한대의_자동차만_참가_정지 \ No newline at end of file diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 66f39af..4dcb86b 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -31,6 +31,12 @@ class Car { } } + for(int i = 0; i < Cars.size(); i++){ + for(int j = i + 1; j < Cars.size(); j++){ + + } + } + System.out.println("시도할 회수는 몇회인가요?"); if (scanner.hasNextInt()) { From 0a232c0097626e0c2cf79f728edc7abaf1b13b36 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 29 Mar 2026 01:05:17 +0900 Subject: [PATCH 07/12] =?UTF-8?q?feat:=20=EA=B5=AC=ED=98=84=ED=95=B4?= =?UTF-8?q?=EC=95=BC=ED=95=A0=20=EB=AA=A9=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/docs/README.md b/docs/README.md index 9fbeec9..317744b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,14 +1,7 @@ 구현해야할 목록 -전진_정지 -자동차_이름_5자_초과_예외_처리 -자동차_이름_공백_포함_예외_처리 -자동차_이름_빈값_예외_처리 -자동차_이름_중복_예외_처리 -시도_횟수_0_이하_예외_처리 -시도_횟수_숫자_아님_예외_처리 -단독_우승자_출력 -공동_우승자_출력 -모든_자동차_멈춤_출력 -여러_라운드_진행_출력 -한대의_자동차만_참가_출력 -한대의_자동차만_참가_정지 \ No newline at end of file + +자동차 이름과 시도횟수 입력 + +레이싱 진행 출력 + +우승자 출력 \ No newline at end of file From bc89b3783973ac33ac8c91f1eedd80a54024406c Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 29 Mar 2026 01:55:01 +0900 Subject: [PATCH 08/12] =?UTF-8?q?feat:=20=EC=9E=90=EB=8F=99=EC=B0=A8=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=EA=B3=BC=20=EC=8B=9C=EB=8F=84=ED=9A=9F?= =?UTF-8?q?=EC=88=98=20=EC=9E=85=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 53 +++++++++++++----------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 4dcb86b..b73d209 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,26 +1,32 @@ package racingcar; import java.util.*; - +import camp.nextstep.edu.missionutils.Console; public class Application { public static void main(String[] args) { // TODO: 프로그램 구현 - Scanner scanner = new Scanner(System.in); + ArrayList Cars = inputCars(); + int round = inputRound(); + for(int i = 0; i < Cars.size(); i++){ + System.out.println(Cars.get(i).name); + } + System.out.println(round); + } - int round; - class Car { - String name; - int score = 0; + static class Car { + String name; + int score = 0; - Car(String name) { - this.name = name; - } + Car(String name) { + this.name = name; } + } + private static ArrayList inputCars(){ ArrayList Cars = new ArrayList<>(); System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)"); - String input = scanner.nextLine(); + String input = Console.readLine(); String[] names = input.split(","); for(int i = 0; i < names.length; i++){ @@ -30,28 +36,25 @@ class Car { Cars.add(new Car(names[i])); } } + return Cars; + } - for(int i = 0; i < Cars.size(); i++){ - for(int j = i + 1; j < Cars.size(); j++){ - - } - } - + private static int inputRound(){ System.out.println("시도할 회수는 몇회인가요?"); - - if (scanner.hasNextInt()) { - round = scanner.nextInt(); - } else { + int round = 0; + try { + round = Integer.parseInt(Console.readLine().trim()); + if(round <= 0){ + throw new IllegalArgumentException(); + } + } catch(NumberFormatException e){ throw new IllegalArgumentException(); } if(round <= 0){ throw new IllegalArgumentException(); } - - for(int i = 0; i < Cars.size(); i++){ - System.out.println(Cars.get(i).name); - } - System.out.println(round); + System.out.println(" "); + return round; } } \ No newline at end of file From ec06beac1588667e2d12c2bc71b02e89f426a2ac Mon Sep 17 00:00:00 2001 From: Superpinoiman Date: Sun, 29 Mar 2026 03:43:31 +0900 Subject: [PATCH 09/12] =?UTF-8?q?feet:=20=EC=9E=90=EB=8F=99=EC=B0=A8=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=EA=B3=BC=20=EC=8B=9C=EB=8F=84=ED=9A=9F?= =?UTF-8?q?=EC=88=98=20=EC=9E=85=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index b73d209..e1d41ce 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -23,6 +23,16 @@ static class Car { } } + private static boolean nameAgain(ArrayList Cars){ + Set nameSet = new HashSet<>(); + for(int i = 0; i < Cars.size() ; i++) { + if (!nameSet.add(Cars.get(i).name)) { + return true; + } + } + return false; + } + private static ArrayList inputCars(){ ArrayList Cars = new ArrayList<>(); System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)"); @@ -36,6 +46,9 @@ private static ArrayList inputCars(){ Cars.add(new Car(names[i])); } } + if(nameAgain(Cars)){ + throw new IllegalArgumentException(); + } return Cars; } @@ -44,13 +57,9 @@ private static int inputRound(){ int round = 0; try { round = Integer.parseInt(Console.readLine().trim()); - if(round <= 0){ - throw new IllegalArgumentException(); - } } catch(NumberFormatException e){ throw new IllegalArgumentException(); } - if(round <= 0){ throw new IllegalArgumentException(); } From 53803f4b9adbad736bfeee5fee36ec650614beba Mon Sep 17 00:00:00 2001 From: Superpinoiman Date: Sun, 29 Mar 2026 04:31:54 +0900 Subject: [PATCH 10/12] =?UTF-8?q?feet:=20=EB=A0=88=EC=9D=B4=EC=8B=B1=20?= =?UTF-8?q?=EC=A7=84=ED=96=89=20=EC=B6=9C=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 37 +++++++++++++++++++++--- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index e1d41ce..f007b2f 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,6 +1,7 @@ package racingcar; import java.util.*; import camp.nextstep.edu.missionutils.Console; +import camp.nextstep.edu.missionutils.Randoms; public class Application { @@ -8,10 +9,7 @@ public static void main(String[] args) { // TODO: 프로그램 구현 ArrayList Cars = inputCars(); int round = inputRound(); - for(int i = 0; i < Cars.size(); i++){ - System.out.println(Cars.get(i).name); - } - System.out.println(round); + rounding(round, Cars); } static class Car { @@ -66,4 +64,35 @@ private static int inputRound(){ System.out.println(" "); return round; } + + private static ArrayList racing(ArrayList Cars){ + int random = 0; + for (int i = 0; i < Cars.size(); i++){ + random = Randoms.pickNumberInRange(0, 9); + if(random >= 4){ + Cars.get(i).score++; + } + } + return Cars; + } + + private static ArrayList rounding(int round, ArrayList Cars){ + System.out.println("실행 결과"); + for (int i = 0; i < round; i++){ + racing(Cars); + chart(Cars); + System.out.println(" "); + } + return Cars; + } + + private static void chart(ArrayList Cars){ + for(int i = 0; i < Cars.size(); i++){ + System.out.print(Cars.get(i).name + " : "); + for(int j = 0; j < Cars.get(i).score; j++){ + System.out.print("-"); + } + System.out.println(" "); + } + } } \ No newline at end of file From 1072cf354867c2d3e7013532b664d259fed319b3 Mon Sep 17 00:00:00 2001 From: Superpinoiman Date: Sun, 29 Mar 2026 05:25:55 +0900 Subject: [PATCH 11/12] =?UTF-8?q?feet:=20=EC=9A=B0=EC=8A=B9=EC=9E=90=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 34 +++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index f007b2f..ddb524d 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -9,12 +9,15 @@ public static void main(String[] args) { // TODO: 프로그램 구현 ArrayList Cars = inputCars(); int round = inputRound(); - rounding(round, Cars); + Cars = rounding(round, Cars); + Cars = compare1(Cars); + award(Cars); } static class Car { String name; int score = 0; + boolean winner = true; Car(String name) { this.name = name; @@ -95,4 +98,33 @@ private static void chart(ArrayList Cars){ System.out.println(" "); } } + + private static ArrayList compare1(ArrayList Cars){ + for(int i = 0; i < Cars.size(); i++){ + Cars.get(i).winner = compare2(Cars, i); + } + return Cars; + } + + private static boolean compare2(ArrayList Cars, int i){ + for(int j = i + 1; j < Cars.size() ; j++){ + if(Cars.get(i).score < Cars.get(j).score) return false; + } + return true; + } + + private static void award(ArrayList Cars) { + boolean flag = true; + System.out.print("최종 우승자 : "); + for (int i = 0; i < Cars.size(); i++){ + if(Cars.get(i).winner && !flag){ + System.out.print(", "); + System.out.print(Cars.get(i).name); + } + if(Cars.get(i).winner && flag) { + System.out.print(Cars.get(i).name); + flag = false; + } + } + } } \ No newline at end of file From 71aa530017daf1b5f6adb912392648ec38d43a45 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 4 Apr 2026 02:10:03 +0900 Subject: [PATCH 12/12] =?UTF-8?q?refactor:=20Car=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EB=A5=BC=20=EB=B6=84=EB=A6=AC=ED=95=98=EA=B3=A0=20?= =?UTF-8?q?=EA=B0=9D=EC=B2=B4=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=A0=91?= =?UTF-8?q?=EA=B7=BC=EC=9D=84=20=EB=A9=94=EC=84=9C=EB=93=9C=20=ED=98=B8?= =?UTF-8?q?=EC=B6=9C=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 50 +++++++++++------------- src/main/java/racingcar/Car.java | 34 ++++++++++++++++ 2 files changed, 56 insertions(+), 28 deletions(-) create mode 100644 src/main/java/racingcar/Car.java diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index ddb524d..98f2656 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -10,24 +10,14 @@ public static void main(String[] args) { ArrayList Cars = inputCars(); int round = inputRound(); Cars = rounding(round, Cars); - Cars = compare1(Cars); + Cars = findWinner(Cars); award(Cars); } - static class Car { - String name; - int score = 0; - boolean winner = true; - - Car(String name) { - this.name = name; - } - } - private static boolean nameAgain(ArrayList Cars){ Set nameSet = new HashSet<>(); for(int i = 0; i < Cars.size() ; i++) { - if (!nameSet.add(Cars.get(i).name)) { + if (!nameSet.add(Cars.get(i).getName())) { return true; } } @@ -73,7 +63,7 @@ private static ArrayList racing(ArrayList Cars){ for (int i = 0; i < Cars.size(); i++){ random = Randoms.pickNumberInRange(0, 9); if(random >= 4){ - Cars.get(i).score++; + Cars.get(i).move(); } } return Cars; @@ -91,40 +81,44 @@ private static ArrayList rounding(int round, ArrayList Cars){ private static void chart(ArrayList Cars){ for(int i = 0; i < Cars.size(); i++){ - System.out.print(Cars.get(i).name + " : "); - for(int j = 0; j < Cars.get(i).score; j++){ + System.out.print(Cars.get(i).getName() + " : "); + for(int j = 0; j < Cars.get(i).getScore(); j++){ System.out.print("-"); } System.out.println(" "); } } - private static ArrayList compare1(ArrayList Cars){ + private static ArrayList findWinner(ArrayList Cars){ + int maxScore = 0; + for(int i = 0; i < Cars.size(); i++){ - Cars.get(i).winner = compare2(Cars, i); + if(Cars.get(i).getScore() >= maxScore){ + maxScore = Cars.get(i).getScore(); + } } - return Cars; - } - private static boolean compare2(ArrayList Cars, int i){ - for(int j = i + 1; j < Cars.size() ; j++){ - if(Cars.get(i).score < Cars.get(j).score) return false; + for(int i = 0; i < Cars.size(); i++){ + if(Cars.get(i).getScore() == maxScore){ + Cars.get(i).win(); + } } - return true; + + return Cars; } private static void award(ArrayList Cars) { boolean flag = true; System.out.print("최종 우승자 : "); for (int i = 0; i < Cars.size(); i++){ - if(Cars.get(i).winner && !flag){ + if(Cars.get(i).isWinner() && !flag){ System.out.print(", "); - System.out.print(Cars.get(i).name); + System.out.print(Cars.get(i).getName()); } - if(Cars.get(i).winner && flag) { - System.out.print(Cars.get(i).name); + if(Cars.get(i).isWinner() && flag) { + System.out.print(Cars.get(i).getName()); flag = false; } } } -} \ No newline at end of file +} diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/Car.java new file mode 100644 index 0000000..1b16759 --- /dev/null +++ b/src/main/java/racingcar/Car.java @@ -0,0 +1,34 @@ +package racingcar; + +public class Car { + private String name; + private int score = 0; + private boolean winner = false; + + Car(String name) { + this.name = name; + } + + public String getName(){ + return this.name; + } + + public int getScore(){ + return this.score; + } + + public boolean isWinner(){ + if(this.winner) { + return true; + } + return false; + } + + public void move() { + this.score++; + } + + public void win(){ + this.winner = true; + } +}