Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java-lotto-precourse

본 프로젝트는 우아한테크코스 8기 프리코스 과정의 3차 과제로, 주어진 요구사항에 따라 로또 프로그램을 구현하는 것을 목표로 합니다.

유의사항

개발 환경 및 프로젝트 범위

  • 실행 환경: JDK 21
  • 시작점: Application.main() 메소드
  • 종료: System.exit() 호출 금지
  • 주어진 라이브러리를 제외한 외부 라이브러리 사용 금지
  • build.gradle 파일 수정 금지
  • 제공된 파일, 패키지 이름 수정 및 이동 금지

코드 및 커밋 컨벤션

요구사항 명세서

로또 구입 금액 입력 및 검증

  • 로또 구입 금액을 입력받는다.
    • 구입금액을 입력해 주세요.라는 문구 출력 다음줄에 입력받는다.
  • 로또 구입 금액이 유효한지 검증한다.
    • 입력값은 1000 이상, 2147483000 이하인 양의 정수여야 한다.
    • 금액은 1000원 단위로 나누어 떨어져야 한다.

로또 발행 및 관리

  • 로또 1장의 가격(1000원)을 기준으로 구매할 로또의 개수를 계산한다.
    • n개를 구매했습니다.라는 문구를 출력한다.
  • 계산된 개수만큼 로또를 발행한다.
    • 1개의 로또는 1부터 45 사이의 중복되지 않는 6개의 숫자로 구성된다.

당첨 번호 및 보너스 번호 입력 및 검증

  • 당첨 번호 6개를 입력받는다.
    • 당첨 번호를 입력해 주세요.라는 문구 출력 이후 번호를 입력받는다.
    • 번호는 쉼표(,)를 기준으로 구분되어야 한다.
    • 각 번호는 1부터 45 사이의 정수여야 한다.
    • 6개의 번호는 중복되지 않아야 한다.
  • 보너스 번호 1개를 입력받는다.
    • 보너스 번호를 입력해 주세요.라는 문구 출력 이후 보너스 번호를 입력받는다.
    • 번호는 1부터 45 사이의 정수여야 한다.
    • 보너스 번호는 당첨 번호 6개와 중복되지 않아야 한다.

당첨 결과 계산 및 통계

  • 구매한 로또와 당첨 번호를 비교하여 각 로또의 당첨 등수를 결정한다.
  • 등수별 당첨 횟수를 집계한다.
  • 총 당첨 금액을 계산한다.
  • 수익률을 계산한다.
    • 수익률은 (총 당첨 금액 / 총 구입 금액) * 100으로 계산한다.
    • 수익률은 소수점 둘째 자리에서 반올림한 값을 출력할 수 있도록 한다.

입/출력 및 예외 처리

  • 발행한 로또 수량 및 번호를 요구사항에 맞춰 출력한다.
    • 로또 번호는 오름차순으로 정렬하여 출력한다.
  • 당첨 통계 내역을 요구사항 형식에 맞춰 출력한다.
    • 출력 양식은 다음과 같다.
      당첨 통계
      ---
      3개 일치 (5,000원) - 1개
      4개 일치 (50,000원) - 0개
      5개 일치 (1,500,000원) - 0개
      5개 일치, 보너스 볼 일치 (30,000,000원) - 0개
      6개 일치 (2,000,000,000원) - 0개
    
  • 최종 수익률을 출력한다.
    • 출력 양식은 총 수익률은 m%입니다.이다.
  • 사용자 입력이 잘못된 경우 IllegalArgumentException을 발생시킨다.
    • 예외 발생 시 "[ERROR]"로 시작하는 에러 메시지를 출력 후 해당 입력부터 다시 받는다.
  • UI(입출력) 로직을 제외한 모든 비즈니스 로직에 대해 단위 테스트를 작성한다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages