/woowacourse-racingcar-mission

우아한테크코스 Level1 자동차 경주 미션 최종 코드입니다.

Primary LanguageJava

java-racingcar (자동차 경주 미션)

기능 요구사항

  • 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.
  • 각 자동차에 이름을 부여할 수 있다. 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다.
  • 자동차 이름은 쉼표(,)를 기준으로 구분하며 이름은 5자 이하만 가능하다.
  • 사용자는 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다.
  • 전진하는 조건은 0에서 9 사이에서 random 값을 구한 후 random 값이 4 이상일 경우 전진하고, 3 이하의 값이면 멈춘다.
  • 자동차 경주 게임을 완료한 후 누가 우승했는지를 알려준다. 우승자는 한 명 이상일 수 있다.

구현 기능 목록

  • 입력

    • 경주에 참여할 자동차 이름목록을 입력 받는다.
      • 이름은 쉼표(,)를 기준으로 구분한다.
      • 각 자동차는 5글자 이하의 이름만 허용한다.
      • 자동차 이름은 1글자 이상이어야 한다.
      • 1개 이상의 자동차 이름을 입력해야한다.
      • 중복되는 이름은 허용되지 않는다.
    • 시도횟수를 입력 받는다.
      • 1 이상의 정수만 허용된다.
  • 게임 진행 (처리)

    • 입력한 시도 횟수만큼 게임 진행을 반복한다.
      • 매 게임 진행 마다 각 자동차 별로 0이상 9이하의 무작위 정수값을 생성한다.
      • 무작위 값이 4이상인 경우 전진, 3이하인 경우 정지한다.
  • 출력

    • 매 게임 진행 마다 각 자동차의 실행결과를 출력한다.
      • 진행 상황은 - 로 출력한다.
      • 진행 상황과 함께 각 자동차 이름을 출력한다.
    • 게임 종료 후 최종 우승자를 출력한다.
      • 우승자는 2명 이상일 수 있고, 여러 명인 경우 , 로 구분한다.

TDD - 문자열 덧셈 계산기

기능 요구사항

  • 쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환 (예: “” => 0, "1,2" => 3, "1,2,3" => 6, “1,2:3” => 6)
  • 앞의 기본 구분자(쉼표, 콜론)외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 “//”와 “\n” 사이에 위치하는 문자를 커스텀 구분자로 사용한다. 예를 들어 “//;\n1;2;3”과 같이 값을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다.
  • 문자열 계산기에 숫자 이외의 값 또는 음수를 전달하는 경우RuntimeException 예외를 throw한다.

구현 기능 목록

  • 입력

    • 문자열 한 줄 입력 받는다.
      • 빈 문자열 또는 null 입력은 0으로 반환한다.
      • 숫자 하나만 입력하는 경우 해당 숫자 반환한다.
      • 기본 구분자는 , 혹은 : 이 가능하다.
      • 커스텀 구분자의 경우 //{커스텀구분자}\n의 형식으로 입력 가능하다.
      • 커스텀 형식에 맞지 않는 커스텀 구분자인 경우 RuntimeException을 발생한다.
      • 구분자 이외의 문자 혹은 음수를 포함하는 경우 RuntimeException을 발생한다.
  • 처리

    • (커스텀) 구분자로 구분되는 숫자를 모두 더한다.
  • 출력

    • 덧셈을 수행한 결과 값을 반환한다.

우아한테크코스 코드리뷰