diff --git a/README.md b/README.md index 491aece1..27f82d29 100644 --- a/README.md +++ b/README.md @@ -1 +1,11 @@ -# java-racingcar-precourse \ No newline at end of file +# java-racingcar-precourse + +기능 목록 +1. 자동차 이름 입력 +2. 시도할 횟수 입력 +3. 횟수별로 자동차 이름 출력 +4. 0-9 사이 무작위 값 생성 +5. 무작위 값이 4이상인 경우, 전진 +6. 우승자 식별 +7. 우승자 출력 +8. 잘못된 입력시 exception 출력 \ No newline at end of file diff --git a/src/main/java/Racingcar_application.java b/src/main/java/Racingcar_application.java new file mode 100644 index 00000000..b0f2cf3e --- /dev/null +++ b/src/main/java/Racingcar_application.java @@ -0,0 +1,105 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.*; + +public class Racingcar_application { + + public static void main(String[] args) throws IOException { + // 1. 자동차 이름 입력 + StringTokenizer st = getCarName(); + + // 2. 시도할 횟수 입력 + int cnt = getTryCnt(); + + Map raceMap = new LinkedHashMap<>(); + while(st.hasMoreElements()){ + raceMap.put(st.nextToken(), ""); + } + + for(int i=0; i raceMap) { + int winRace = 0; + int raceCnt = 0; + String winner = ""; + + for(String s : raceMap.keySet()){ + raceCnt = raceMap.get(s).length(); + if(winRace <= raceCnt) winRace = raceCnt; + } + + for(String s : raceMap.keySet()){ + if (raceMap.get(s).length() == winRace){ + winner = winner + ", " + s; + } + } + if (winner.startsWith(", ")){ + winner = winner.replaceFirst(", ", ""); + } + return winner; + } + + private static Map startRacing(Map raceMap) { + Random random = new Random(); + int randNum = 0; + for(String s : raceMap.keySet()){ + randNum = random.nextInt(9); + if (randNum > 4) { + raceMap.put(s, raceMap.get(s) + "-"); + } + } + return raceMap; + } + + private static void printRacing(Map raceMap) { + for(String s : raceMap.keySet()){ + System.out.println(s + " : " + raceMap.get(s)); + } + System.out.println(""); + } + +}