- 자동차 경주 게임 요구사항을 파악한다.
- 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 코드 리뷰 요청을 한다.
- 코드 리뷰 피드백에 대한 개선 작업을 하고 다시 PUSH한다.
- 모든 피드백을 완료하면 다음 단계를 도전하고 앞의 과정을 반복한다.
- 입력
- 검증
- 숫자하고 계산기 특수문자(
+ * / -
)를 제외하면 오류 처리한다. - 각 문자사이 공백은 한칸이다. 한칸이 넘으면 에러 처리한다.
- 입력인
null
이거나 공백문자이면IllegalArgumentException throw
- 사칙연산 기호가 아닌 경우
IllegalArgumentException throw
- 숫자 / 연산기호 순서가 올바르지 않을 경우 Parse 전용
Exception throw
출력
- 숫자하고 계산기 특수문자(
- 파싱
- 공식 파싱 검증 부분은 파싱 클라스가 담당
- 파싱해서 숫자, 사칙연산 기호 getter로 반환.
- 계산
- 문자열 계산기는 사칙 연산의 계산 우선순위가 아닌 입력 값에 따라 계산 순서가 결정된다.
- 즉, 수학에서는 곱셈, 나눗셈이 덧셈, 뺄셈 보다 먼저 계산해야 하지만 이를 무시한다.
- 예를 들어
2 + 3 * 4 / 2
와 같은 문자열을 입력할 경우2 + 3 * 4 / 2
실행 결과인 10을 출력해야 한다.
- 결과 반환
- 유닛테스트
- 잘못된 formula
- 공백 2칸 이상일때, IllegalArgumentException 발생한다.
-
2 + 3 * 4 / 2
-
- 숫자 연속 2개 올 때, IllegalArgumentException 발생한다.
-
2 3 * 4 / 2
-
- 문자 연속 2개 올 때, IllegalArgumentException 발생한다.
-
+ + 3 * 4 / 2
-
- 사칙 연산기호 아닌것일때 IllegalArgumentException 발생한다.
-
2 & 3 * 4 / 2
-
- null일때 IllegalArgumentException 발생한다.
-
null
- ``
-
-
- 공백 2칸 이상일때, IllegalArgumentException 발생한다.
- 정상 formula:
2 + 3 * 4 / 2
일 때 의도한 값10
을 반환한다.
- 잘못된 formula
- 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.
- 입력
- 사용자는 자동차가 몇 대인지 입력 받을 수 있다.
경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분).
- 사용자는 자동차가 몇 번의 이동을 할 것인지를 입력할 수 있어야한다.
시도할 횟수는 몇 회인가요?
- 사용자는 자동차가 몇 대인지 입력 받을 수 있다.
- 자동차 이름
- 이름을 부여할 수 있다.
- 자동차의 이름은 5자를 초과할 수 없다.
- 자동차 이름은 쉼표(,)를 기준으로 구분한다.
- 전진
- 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다.
- 0에서 9사이 무작위 값중 0
3은 제자리에, 49는 전진한다.
- 자동차의 상태를 화면에 출력한다. 어느 시점에 출력할 것인지에 대한 제약은 없다.
- 결과
- 자동차 경주 게임을 완료한 후 누가 우승했는지 알려준다.
- 우승자는 한 명 이상일 수 있다.
- 모든 로직에 단위 테스트를 구현한다.
- indent depth는 2를 넘지 않도록 한다.
- else 예약어를 쓰지 않는다.
- switch/case 예약어를 쓰지 않는다.
- 함수의 길이가 15라인을 넘어가지 않도록 구현한다.
목요일 18시
git commit -m "commit message
Co-authored-by: hochan222 <hochan049@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"