java로 구현하는 로또 발매기 프로그램
입력한 금액에 따라 로또를 발행받고, 당첨 번호에 따라 당첨 내역과 수익률을 알 수 있는 프로그램이다.
로또 번호의 숫자 범위는 1~45까지이다. 모든 로또 번호의 조합은 중복되지 않게 뽑는다.
- 사용자로부터 로또 구입 금액을 입력받는다.
- 로또 1장의 가격은 1,000원으로, 구입 금액은 1,000원 단위로 입력 받는다.
입력 예시
14000
- 사용자가 잘못된 값을 입력할 경우
IllegalArgumentException을 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.사용자가 금액을 1000원 단위로 입력하지 않은 경우: [ERROR] 금액은 1000원 단위의 숫자로 입력해 주세요.
사용자가 금액으로 숫자 이외의 값을 입력한 경우: [ERROR] 금액은 1000원 단위의 숫자로 입력해 주세요.
- 입력받은 구입 금액에 해당하는 만큼 로또를 발행한다.
- 발행한 로또 수량 및 번호를 출력한다. 로또 번호는 오름차순으로 정렬하여 보여준다.
출력 예시
8개를 구매했습니다.
[8, 21, 23, 41, 42, 43]
[3, 5, 11, 16, 32, 38]
[7, 11, 16, 35, 36, 44]
[1, 8, 11, 31, 41, 42]
[13, 14, 16, 38, 42, 45]
[7, 11, 30, 40, 42, 43]
[2, 13, 22, 32, 38, 45]
[1, 3, 5, 14, 22, 45]
중복되지 않는 숫자 6개와 보너스 번호 1개를 뽑는다.
- 당첨 번호와 보너스 번호를 입력받는다.
- 당첨 번호 6개는 쉼표(,)로 구분해 입력받고, 보너스 번호는 따로 입력받는다.
당첨 번호 입력 예시
1,2,3,4,5,6
보너스 번호 입력 예시
7
사용자가 잘못된 값을 입력할 경우IllegalArgumentException을 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.
사용자가 1~45 사이의 번호를 입력하지 않은 경우 : [ERROR] 로또 번호는 1부터 45 사이의 숫자여야 합니다.
사용자가 당첨 번호로 중복된 번호를 입력한 경우 : [ERROR] 중복된 번호는 뽑을 수 없습니다.
사용자가 6개의 번호를 입력하지 않은 경우 : [ERROR] 로또 번호는 6개여야 합니다.
사용자가 구매한 로또 번호와 당첨 번호를 비교하여 당첨 내역 및 수익률을 출력하고 로또 게임을 종료한다.
- 당첨은 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원
- 당첨 내역은 일치한 번호의 개수와 당첨 금액, 당첨 개수를 출력한다.
- 수익률은 구입 금액대비 당첨 금액의 비율을 출력한다.
- 수익률은 소수점 둘째 자리에서 반올림한다. (ex. 100.0%, 51.5%, 1,000,000.0%)
당첨 내역 출력 예시
3개 일치 (5,000원) - 1개
4개 일치 (50,000원) - 0개
5개 일치 (1,500,000원) - 0개
5개 일치, 보너스 볼 일치 (30,000,000원) - 0개
6개 일치 (2,000,000,000원) - 0개
수익률 출력 예시
총 수익률은 62.5%입니다.
구입금액을 입력해 주세요.
8000
8개를 구매했습니다.
[8, 21, 23, 41, 42, 43]
[3, 5, 11, 16, 32, 38]
[7, 11, 16, 35, 36, 44]
[1, 8, 11, 31, 41, 42]
[13, 14, 16, 38, 42, 45]
[7, 11, 30, 40, 42, 43]
[2, 13, 22, 32, 38, 45]
[1, 3, 5, 14, 22, 45]
당첨 번호를 입력해 주세요.
1,2,3,4,5,6
보너스 번호를 입력해 주세요.
7
당첨 통계
---
3개 일치 (5,000원) - 1개
4개 일치 (50,000원) - 0개
5개 일치 (1,500,000원) - 0개
5개 일치, 보너스 볼 일치 (30,000,000원) - 0개
6개 일치 (2,000,000,000원) - 0개
총 수익률은 62.5%입니다.