Skip to content

Latest commit

 

History

History
53 lines (45 loc) · 2.02 KB

File metadata and controls

53 lines (45 loc) · 2.02 KB

javascript-lotto-precourse

✅ 입출력

  • 로또 구입 금액 입력(1000단위) ✅
  • 당첨 번호 입력 ✅
  • 보너스 번호 입력 ✅
  • 발행한 로또 개수 출력 ✅
  • 결과 출력

✅ 전처리

  • 당첨 번호 쉼표 기준 구분(앞 뒤로 공백제거, 숫자로 변환) ✅
  • 발행한 로또 개수 구하기 ✅

✅ 1등 ~ 5등 검사

  • (로또 개수만큼) 중복되지 않는 숫자 6개 뽑기, 오름차순 정렬 ✅
  • 1등 조건 검사, 개수 카운트 ✅
  • 2등 조건 검사, 개수 카운트 ✅
  • 3등 조건 검사, 개수 카운트 ✅
  • 4등 조건 검사, 개수 카운트 ✅
  • 5등 조건 검사, 개수 카운트 ✅

✅ 수익률 계산

  • 수익률 계산 (벌어들인 금액/구매 금액), 소수점 둘째 자리 반올림 ✅

✅ 예외처리

  • 입력 오류 : 입력 금액이 1000으로 나누어 떨어지지 않는 경우 ✅
  • 입력 오류 : 로또 구매 금액이 숫자가 경우 ✅
  • 입력 오류 : 숫자가 아니거나, 쉼표가 아닌 것이 입력된 경우 ✅
  • 입력 오류 : 숫자가 중복되는 경우 ✅
  • 입력 오류 : 로또 번호가 범위를 벗어나는 경우 ✅
  • 입력 오류 : 로또 번호가 6개가 아닌 경우 ✅
  • 입력 오류 : 보너스 번호가 이미 입력한 번호와 중복되는 경우 ✅
  • 입력 오류 : 보너스 번호가 숫자가 아닌 경우 ✅

클래스 설계

  • Lotto 클래스 : 입력된 로또 번호 검증 및 관리
  • LottoGame 클래스 : 게임진행, 로또발행, 당첨내역, 예외처리
  • App 클래스 : 입출력 담당

코드 흐름

  • App 로또 금액 입력받기 -> LottoGame 로또 금액만큼 로또 발행 요청 -> Lotto 로또 발행 (외부에서 수정 불가) -> LottoGame 발행된 로또 저장 -> App 로또출력

  • App 로또 번호, 보너스 입력받기 -> LottoGame 로또 번호 전처리(,제거) -> Lotto 유저 로또 검증, 발행 -> LottoGame 유저 로또 저장 -> LottoGame 로또 번호 당첨 여부 카운트 -> App 당첨여부출력

MVC 구조