From c06b285d8b9d3e2fc3bdd74007cff742ecb5463c Mon Sep 17 00:00:00 2001 From: Yujin Date: Mon, 22 Sep 2025 05:48:40 +0900 Subject: [PATCH] =?UTF-8?q?0=EC=A3=BC=EC=B0=A8=20=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=8B=B1=20=EA=B3=BC=EC=A0=9C=EC=9E=85=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 58 +++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e..79b1baf 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,63 @@ package racingcar; +import camp.nextstep.edu.missionutils.Console; +import camp.nextstep.edu.missionutils.Randoms; + public class Application { public static void main(String[] args) { - // TODO: 프로그램 구현 + System.out.print("자동차 이름들을 ,를 사용해 입력하세요(이름은 5자 이하): "); + String inputNames = Console.readLine(); + String[] carNames = inputNames.split(","); + + for (int i = 0; i < carNames.length; i++) { + carNames[i] = carNames[i].trim(); + if (carNames[i].isEmpty() || carNames[i].length() > 5) { + throw new IllegalArgumentException("자동차 이름은 5자 이내여야 합니다."); + } + } + + System.out.print("시도 횟수 : "); + String tryCountInput = Console.readLine(); + int tryCount = Integer.parseInt(tryCountInput); + + if (tryCount <= 0) { + throw new IllegalArgumentException("잘못된 값입니다."); + } + + int[] positions = new int[carNames.length]; + + System.out.println("\n실행 결과"); + + for (int i = 0; i < tryCount; i++) { + for (int j = 0; j < carNames.length; j++) { + int num = Randoms.pickNumberInRange(0, 9); + if (num >= 4) { + positions[j]++; + } + System.out.println(carNames[j] + " : " + "-".repeat(positions[j])); + } + System.out.println(); + } + + int maxDistance = 0; + for (int pos : positions) { + if (pos > maxDistance) { + maxDistance = pos; + } + } + + // 우승자 문자열 만들기 + String winners = ""; + for (int i = 0; i < carNames.length; i++) { + if (positions[i] == maxDistance) { + if (!winners.isEmpty()) { + winners += ","; + } + winners += carNames[i]; + } + } + + // 우승자 출력 + System.out.println("최종 우승자 : " + winners); } }