-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathApplication.java
More file actions
64 lines (52 loc) · 1.8 KB
/
Application.java
File metadata and controls
64 lines (52 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package racingcar;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import camp.nextstep.edu.missionutils.Console;
public class Application {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<Car> cars = getCars(sc);
int count = getTrialCount(sc);
raceCars(cars, count);
List<String> winners = getWinners(cars);
printWinners(winners);
}
private static List<Car> getCars(Scanner sc) {
System.out.print("차 이름들을 입력하세요 (쉼표로 구분): ");
String[] names = Console.readLine().split(",");
List<Car> cars = new ArrayList<>();
for (String name : names) {
cars.add(new Car(name.trim()));
}
return cars;
}
private static int getTrialCount(Scanner sc) {
System.out.print("시도할 횟수를 입력하세요: ");
return sc.nextInt();
}
private static void raceCars(List<Car> cars, int count) {
for (int i = 0; i < count; i++) {
for (Car car : cars) {
car.movement();
System.out.println(car.getName() + " : " + "-".repeat(car.getPosition()));
}
}
}
private static List<String> getWinners(List<Car> cars) {
int maxPosition = 0;
for (Car car : cars) {
maxPosition = Math.max(maxPosition, car.getPosition());
}
List<String> winners = new ArrayList<>();
for (Car car : cars) {
if (car.getPosition() == maxPosition) {
winners.add(car.getName());
}
}
return winners;
}
private static void printWinners(List<String> winners) {
System.out.println("최종 우승자 : " + String.join(", ", winners));
}
}