Skip to content

woowacourse-precourse/kotlin-lotto-7

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Repository files navigation

프리코스 2주차 미션 - 로또

기능 요구 사항

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

  • 로또 번호의 숫자 범위는 1~45까지이다.
  • 1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑는다.
  • 당첨 번호 추첨 시 중복되지 않는 숫자 6개와 보너스 번호 1개를 뽑는다.
  • 당첨은 1등부터 5등까지 있다. 당첨 기준과 금액은 아래와 같다.
    • 1등: 6개 번호 일치 / 2,000,000,000원
    • 2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원
    • 3등: 5개 번호 일치 / 1,500,000원
    • 4등: 4개 번호 일치 / 50,000원
    • 5등: 3개 번호 일치 / 5,000원
  • 로또 구입 금액을 입력하면 구입 금액에 해당하는 만큼 로또를 발행해야 한다.
  • 로또 1장의 가격은 1,000원이다.
  • 당첨 번호와 보너스 번호를 입력받는다.
  • 사용자가 구매한 로또 번호와 당첨 번호를 비교하여 당첨 내역 및 수익률을 출력하고 로또 게임을 종료한다.
  • 사용자가 잘못된 값을 입력할 경우IllegalArgumentException을 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.
    • Exception이 아닌IllegalArgumentException,IllegalStateException등과 같은 명확한 유형을 처리한다.

기능 목록

  • 입력

  • 로또 구입 금액을 입력 받는다.

  • 당첨 번호를 입력 받는다. 번호는 쉼표(,)를 기준으로 구분한다.

  • 보너스 번호를 입력 받는다.

  • 출력

  • 발행한 로또 수량번호를 출력한다. 로또 번호는 오름차순으로 정렬하여 보여준다.

  • 당첨 내역을 출력한다.

  • 수익률을 출력한다. 수익률은 소수점 둘째 자리에서 반올림한다. (ex. 100.0%, 51.5%, 1,000,000.0%)

  • 입력한 값이 유효한지 검증한다.(로또 구입 금액, 당첨 번호, 보너스 번호)

  • 로또 구입 금액이 1000원 미만인 경우

  • 로또 구입 금액이 1000원으로 나누어 떨어지지 않는 경우

  • 로또 번호의 숫자 범위를 초과한 경우(1 ~ 45)

  • 로또 번호의 갯수(당첨 번호 6개, 보너스 번호 1개)를 만족하지 않는 경우

  • 당첨 번호에 중복된 숫자가 포함된 경우

  • 미입력

  • 공백이 포함된 경우

  • 숫자(양수)와 쉼표가 아닌 값이 입력 된 경우

  • 구입한 만큼의 로또를 발행한다.

  • 당첨 내역을 산정한다.

  • 수익률을 산정한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages