You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1개의 로또 티켓: 각 티켓에는 중복되지 않는 6개의 숫자가 1~45 사이에서 무작위로 선택됩니다.
2. 당첨 번호와 보너스 번호
당첨 번호: 1~45 범위의 중복되지 않는 6개의 번호.
보너스 번호: 추가로 선택되는 1개의 고유 번호로, 당첨 번호와 중복되지 않는 1~45 사이의 숫자.
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. 기능 요구사항
로또 구입: 로또 한 장당 1,000원으로, 입력받은 구입 금액에 따라 해당하는 개수만큼 로또를 발행합니다.
당첨 번호 입력: 당첨 번호와 보너스 번호를 사용자로부터 입력받습니다.
당첨 확인 및 수익률 계산: 구매한 로또 번호와 당첨 번호를 비교해 당첨 내역과 수익률을 출력합니다.
예외 처리: 사용자가 잘못된 값을 입력할 경우 IllegalArgumentException을 발생시키고, "[ERROR]"로 시작하는 메시지를 출력한 후 해당 부분부터 다시 입력을 받습니다. IllegalArgumentException, IllegalStateException 등 명확한 예외 유형을 사용합니다.
👨💻 구현해야할 기능 목록
1. 구매할 금액 입력 기능
금액에 대한 예외처리 (음수일시,1000원으로 나눠 떨어지지 않을때, 숫자가 아닐시 ....)
2. 당첨번호 입력 기능
번호입력에 예외처리 (1~45까지만 가능)
3. 보너스번호 입력 기능
번호입력에 예외처리 (1~45까지만 가능)
4. 1~45까지 랜덤수 6개를 뽑는 기능
5. 6개 랜덤수를 출력하는 기능
O개를 구매했습니다.안내 및 랜덤수 6개 출력
6. 당첨내역을 출력하는 기능
7. 수익률을 출력하는 기능
프로그래밍 요구 사항
요구 사항 1
JDK 버전: JDK 21에서 실행 가능해야 합니다.
시작점: 프로그램 실행 시작점은 Application의 main() 메서드여야 합니다.
외부 라이브러리: build.gradle 파일은 수정할 수 없으며, 제공된 라이브러리 외에는 추가하지 않습니다.
프로그램 종료 방식: System.exit() 메서드를 사용하지 않습니다.
코드 변경: 특별히 지시가 없는 한, 파일명이나 패키지명 등을 변경하지 않습니다.
코드 스타일: Java 코드 컨벤션을 준수하며, Java Style Guide를 기본 원칙으로 삼습니다.
요구 사항 2
Indent Depth 제한: 들여쓰기 깊이를 최대 2로 제한합니다.
힌트: 들여쓰기 깊이를 줄이려면 함수를 분리하여 구현합니다.
삼항 연산자 금지: 3항 연산자를 사용하지 않습니다.
함수 분리: 각 함수는 하나의 작업만 수행하도록 작성합니다.
테스트 코드 작성: JUnit 5와 AssertJ를 사용하여 작성한 기능이 정상 작동하는지 테스트합니다.