Skip to content

[행성 로또] 조연아 미션 제출합니다.#28

Open
yunajoe wants to merge 15 commits intowoowacourse-precourse:mainfrom
yunajoe:yunajoe
Open

[행성 로또] 조연아 미션 제출합니다.#28
yunajoe wants to merge 15 commits intowoowacourse-precourse:mainfrom
yunajoe:yunajoe

Conversation

@yunajoe
Copy link
Copy Markdown

@yunajoe yunajoe commented Jan 10, 2026

javascript-planetlotto-precourse

프로그램 목적

  • 행성 로또를 구현
  • 프리코스에서 학습한 개발 방식(문제 분해, 설계, TDD)이 코드에 드러나는 것

기능 요구 사항

  1. 로또 구입금액을 입력
  • 500으로 나누어 떨어지는 숫자를 입력해야 한다
  1. 로또를 구입 갯수 출력
  • 로또 한장당 500원 이다.
  • 로또 입력 금액 만큼의 갯수를 출력한다. 예를 들어 1000원을 냈으면은 2장인 것이다.
  1. 발행된 로또 번호들을 출력
  • 1개의 로또를 발행할 때 중복되지 않는 5개의 숫자를 뽑는다.
  • Randoms.pickUniqueNumbersInRange 메서드를 사용한다
  1. 당천 번호 입력 기능
  • 로또 번호는 1 ~ 30까지 입력해야 한다
  • 로또 번호는 중복이 되어서는 안된다
  • 번호는 쉼표(,)를 기준으로 구분한다.
  1. 보너스 번호 입력 기능
  • 보너스 번호는 당첨번호에서 입력하지 않은 번호여야 한다
  1. 당첨 통계 계산 기능
  • 로또번호 5개 일치 1등 (100,000,000)
  • 로또번호 4개 일치 + 보너스 번호 (10,000,000)
  • 로또번호 4개 일치 (1,500,000)
  • 로또번호 3개 일치 + 보너스 번호 (500,000)
  • 로또번호 2개 일치 + 보너스 번호 (5000)
  1. 당첨 통계 출력 기능
  • 기존에 생성되어 있던 printResult 메서드를 사용하여 구현

예외 처리

  • [공통]:사용자 입력이 빈값이 경우 예외 처리

  • [구입금액 입력]

    1. 숫자가 아닐 경우 예외
    2. 500원 미만일 경우 예외
  • [로또 번호 입력]

    1. 입력한 번호가 5개가 아닐 경우 예외
    2. 입력한 번호가 숫자가 아닐 경우 예외
    3. 입력한 번호가 중복일 있을 경우 예외
    4. 입력한 번호가 1 ~ 30 사이의 숫자가 아닌 경우 예외
  • [보너스 번호 입력]

    1. 숫자가 아닐 경우 예외
    2. 입력한 번호가 1 ~ 30 사이의 숫자가 아닌 경우 예외
    3. 로또 번호와 중복일 경우 예외
  • 사용자가 잘못된 값을 입력할 경우 "[ERROR]"로 시작하는 메시지와 함께 Error를 발생시키고 해당 메시지를 출력한 다음 해당 지점부터 다시 입력을 받는다

프로그래밍 요구 사항

  • @woowacourse/mission-utils에서 제공하는 Random 및 Console API를 사용하여 구현해야 한다.
    Random 값 추출은 Random.pickUniqueNumbersInRange()를 활용한다.
    사용자의 값을 입력 및 출력하려면 Console.readLineAsync()와 Console.print()를 활용한다.

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