Skip to content

seahkeem/javascript-lotto-8

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

javascript-lotto-precourse

간단한 로또 발매기를 구현한다.

구현할 기능 목록

1. 입력 처리 및 유효성 검증

  • 입력 요청: 구입 금액을 입력받는다.
  • 입력 요청: 당첨 번호 6개를 입력받는다.
  • 입력 요청: 보너스 번호 1개를 입력받는다.
  • 오류 처리: 구입 금액이 1,000원 단위가 아닌 경우 [ERROR] 구입 금액은 1,000원 단위여야 합니다.
  • 오류 처리: 로또 번호가 1~45 범위를 벗어날 경우 [ERROR] 로또 번호는 1부터 45 사이의 숫자여야 합니다.
  • 오류 처리: 로또 번호가 6개가 아닐 경우 [ERROR] 로또 번호는 6개여야 합니다.
  • 오류 처리: 로또 번호에 중복이 있을 경우 [ERROR] 로또 번호는 중복될 수 없습니다.
  • 오류 처리: 보너스 번호가 당첨 번호와 중복될 경우 [ERROR] 보너스 번호는 당첨 번호와 중복될 수 없습니다.

###2. 로또 발행

  • 구입 금액을 1,000으로 나눈 개수만큼 로또를 발행한다.
  • 각 로또는 1~45 사이의 중복되지 않는 6개의 숫자를 가진다.
  • 로또 번호는 오름차순으로 정렬한다.
  • 발행된 모든 로또 번호를 출력한다.

3. 당첨 결과 계산

  • 사용자가 입력한 당첨 번호 및 보너스 번호와 발행된 로또를 비교한다.
  • 일치하는 번호 개수에 따라 등수를 계산한다.
  • 당첨 기준
순위 조건 상금
1등 6개 번호 일치 2,000,000,000원
2등 5개 번호 + 보너스 번호 일치 30,000,000원
3등 5개 번호 일치 1,500,000원
4등 4개 번호 일치 50,000원
5등 3개 번호 일치 5,000원

4. 결과 출력

  • 등수별 당첨 개수를 출력한다.
  • 수익률은 소수점 둘째 자리에서 반올림한다.
  • 예외 상황 발생 시 [ERROR] {메시지}를 출력하고 해당 입력부터 다시 받는다.

에러 및 예외 처리 목록

구분 상황 처리 방식
[ERROR] 구입 금액이 1,000원 단위가 아닐 때 [ERROR] 구입 금액은 1,000원 단위여야 합니다.
[ERROR] 로또 번호가 1~45 범위를 벗어날 때 [ERROR] 로또 번호는 1부터 45 사이의 숫자여야 합니다.
[ERROR] 로또 번호 개수가 6개가 아닐 때 [ERROR] 로또 번호는 6개여야 합니다.
[ERROR] 로또 번호 중복 시 [ERROR] 로또 번호는 중복될 수 없습니다.
[ERROR] 보너스 번호 중복 시 [ERROR] 보너스 번호는 당첨 번호와 중복될 수 없습니다.

프로그래밍 및 테스트 요구사항

분류 상세 내용
코드 원칙 indent depth를 2 이하로 유지하고, 3항 연산자 사용을 금지하며, 함수는 단일 책임(SRP)을 지키도록 구현한다.
커밋 원칙 기능 목록 단위로 커밋하며, AngularJS Commit Convention(feat, fix, test, refactor, chore, docs)을 따른다.
라이브러리 MissionUtilsRandomConsole API만 사용 가능. 외부 라이브러리 사용 금지.
테스트 Jest를 사용하여 모든 기능과 모든 예외 상황에 대한 단위 테스트를 작성한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • JavaScript 100.0%