Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 57 additions & 1 deletion src/main/java/racingcar/Application.java
Original file line number Diff line number Diff line change
@@ -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);
}
}