Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Smimdla0205 #2

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open

Smimdla0205 #2

wants to merge 7 commits into from

Conversation

smimdla0205
Copy link

과제 시작

  • 자동차 경주 저장소를 포크하고 클론한다.
  • 기능을 구현하기 전에 README.md에 구현할 기능 목록을 정리해 추가한다.
  • Git의 커밋 단위는 앞 단계에서 README.md에 정리한 기능 목록 단위로 추가한다.
  • AngularJS Git Commit Message Conventions을 참고하여 커밋 메시지를 작성한다.
  • 자세한 과제 진행 방법은 프리코스 진행 가이드 문서를 참고한다.

기능 요구 사항

  • 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.
  • 각 자동차에 이름을 부여할 수 있다. 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다.
  • 자동차 이름은 쉼표(,)를 기준으로 구분하며 이름은 5자 이하만 가능하다.
  • 사용자는 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다.
  • 전진하는 조건은 0에서 9 사이에서 무작위 값을 구한 후 무작위 값이 4 이상일 경우이다.
  • 자동차 경주 게임을 완료한 후 누가 우승했는지를 알려준다. 우승자는 한 명 이상일 수 있다.
  • 우승자가 여러 명일 경우 쉼표(,)를 이용하여 구분한다.
  • 사용자가 잘못된 값을 입력할 경우 "[ERROR]"로 시작하는 메시지와 함께 Error를 발생시킨 후 애플리케이션은 종료되어야 한다.

프로그래밍 요구 사항

기본 요구 사항

  • Node.js 20.17.0 버전에서 실행 가능해야 한다.
  • 프로그램 실행의 시작점은 App.jsrun()이다.
  • package.json 파일은 변경할 수 없으며, 제공된 라이브러리와 스타일 라이브러리 이외의 외부 라이브러리는 사용하지 않는다.
  • 프로그램 종료 시 process.exit()를 호출하지 않는다.
  • 파일, 패키지 등의 이름을 바꾸거나 이동하지 않는다.
  • 자바스크립트 코드 컨벤션을 지키면서 프로그래밍한다.

추가 요구 사항

  • 3항 연산자를 쓰지 않는다.
  • 함수(또는 메서드)가 한 가지 일만 하도록 최대한 작게 만들어라.
  • Jest를 사용하여 정리한 기능 목록이 정상적으로 작동하는지 테스트 코드로 확인한다.

테스트 도구 및 라이브러리

  • @woowacourse/mission-utils에서 제공하는 Random 및 Console API를 사용하여 구현한다.
  • 사용자 입력 및 출력: Console.readLineAsync()Console.print()

쉼표(,)와 콜론(:)을 구분자로 사용하여 문자열을 분리하고, 각 숫자의 합을 반환하는 기능을 구현했습니다.
입력 예시: '1,2:3' -> 결과: 6
커스텀 구분자(예: //;\n)를 지원하여 사용자 지정 구분자로 문자열을 분리하고 숫자의 합을 계산하는 기능을 추가했습니다.
입력 예시: '//;\n1;2;3' -> 결과: 6
다음과 같은 경우 에러를 처리하는 기능을 추가했습니다:
1. 음수 입력: '-1,2,3' -> [ERROR]
2. 숫자가 아닌 값 입력: '1,a,3' -> [ERROR]
3. 잘못된 커스텀 구분자: '//;n1;2;3' -> [ERROR]
4. 빈 문자열 포함: '1,,2,,3' -> [ERROR]

기능 요구사항을 맞추기 위해 각 에러 메시지를 [ERROR]로 통일했고,
각 에러 상황을 구분해 if문을 통해 구체적으로 처리했습니다.
숫자 하나만 입력된 경우 해당 숫자를 그대로 반환하는 기능을 추가했습니다.
입력 예시: '1' -> 결과: 1
입력 예시: '//;\n1' -> 결과: 1
해당 기능을 반영하여 README 7번도 수정했습니다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant