From 079e54f7dc719facaa7704fce7b14f2fbbc85a43 Mon Sep 17 00:00:00 2001 From: code6150 Date: Mon, 30 Mar 2026 20:39:04 +0900 Subject: [PATCH 1/2] Project Done --- src/main/java/racingcar/Application.java | 79 +++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e..c42c29b 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,84 @@ package racingcar; +import camp.nextstep.edu.missionutils.Randoms; +import java.util.*; + +class Car { + String name; + int moveCount; + + public Car(String name) { + this.name = name; + this.moveCount = 0; + } + + public void move() { + moveCount++; + } + + public int getMoveCount() { + return moveCount; + } +} + public class Application { public static void main(String[] args) { - // TODO: 프로그램 구현 + Scanner in = new Scanner(System.in); + + //부릉부릉 + System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)"); + String a = in.nextLine(); + List cars = new ArrayList<>(); + for (String name : a.split(",")) { + if (name.isEmpty()) {throw new IllegalArgumentException("왜안적음");} + if (name.length() > 5) {throw new IllegalArgumentException("이름5자초과됨");} + if (name.contains(" ")) {throw new IllegalArgumentException("공백포함됨");} + cars.add(new Car(name)); + } + Set dupCheck = new HashSet<>(); + for (Car c : cars){dupCheck.add(c.name);} + + if (dupCheck.size() != cars.size()) {throw new IllegalArgumentException("중복이름있음");} + + //끼이익쾅 + System.out.println("시도할 회수는 몇회인가요?"); + int n; + try { + n = in.nextInt(); + if (n <= 0) { + throw new IllegalArgumentException("0번이하"); + } + } catch (Exception e) { + throw new IllegalArgumentException("숫자안적음"); + } + + + + System.out.printf("%n실행 결과%n"); + for (int i=n;i>0;i--) { + for (Car car : cars) { + int ran = Randoms.pickNumberInRange(0,9); + if (ran >= 4) {car.move();} + String howMove = "-".repeat(car.getMoveCount()); + System.out.printf("%s : %s%n", car.name,howMove); + } + System.out.println(" "); //한칸 띄기용 + } + + //띠리리리리리링 + int max = 0; + List winners = new ArrayList<>(); + for (Car car : cars) { + if (car.getMoveCount() > max){ + max = car.getMoveCount(); + winners.clear(); + winners.add(car.name); + } else if (car.getMoveCount() == max) { + winners.add(car.name); + } + } + + //조아요 조아요 + System.out.println("최종 우승자 : " + String.join(", ", winners)); } } From c432503bfa74cca3deaeaa11432ed85f9f541bed Mon Sep 17 00:00:00 2001 From: code6150 Date: Mon, 30 Mar 2026 21:31:56 +0900 Subject: [PATCH 2/2] Project Done --- Java_Racingcar_2026-1 | 1 + 1 file changed, 1 insertion(+) create mode 160000 Java_Racingcar_2026-1 diff --git a/Java_Racingcar_2026-1 b/Java_Racingcar_2026-1 new file mode 160000 index 0000000..079e54f --- /dev/null +++ b/Java_Racingcar_2026-1 @@ -0,0 +1 @@ +Subproject commit 079e54f7dc719facaa7704fce7b14f2fbbc85a43