Skip to content

kimjuyoung011124/java-lotto-8

 
 

Repository files navigation

# java-lotto-precourse

# 🎰 로또 (Lotto)

## 📖 기능 요구 사항
간단한 콘솔 기반 **로또 발매기 프로그램**을 구현한다.

---

## 🎯 구현 목표

1. 구입 금액을 입력받아, 금액에 해당하는 개수만큼 로또를 발행한다.  
2. 각 로또는 **1~45 사이의 중복되지 않는 6개의 숫자**로 구성된다.  
3. 당첨 번호 6개와 보너스 번호 1개를 입력받는다.  
4. 사용자가 구매한 로또와 당첨 번호를 비교하여 **당첨 내역 및 수익률**을 출력한다.  
5. 잘못된 입력 시 `IllegalArgumentException`을 발생시키고,  
   `[ERROR]`로 시작하는 에러 메시지를 출력한 뒤 해당 입력부터 다시 받는다.  

---

## 🧩 기능 목록

### 1️⃣ 입력
- [ ] 구입 금액을 입력받는다.
  - 1,000원 단위의 양수만 허용.
  - 1,000원으로 나누어떨어지지 않으면 예외 발생.
- [ ] 당첨 번호 6개를 쉼표(`,`)로 구분해 입력받는다.
  - 1~45 범위의 중복되지 않는 숫자 6개.
- [ ] 보너스 번호를 입력받는다.
  - 1~45 범위의 숫자 1개.
  - 당첨 번호와 중복되지 않아야 함.

### 2️⃣ 로또 발행
- [ ] 구입 금액 / 1,000원 만큼 로또를 발행한다.
- [ ] 각 로또는 1~45 사이의 중복되지 않은 6개의 숫자로 구성된다.
- [ ] 로또 번호는 오름차순으로 정렬되어 출력된다.

### 3️⃣ 당첨 결과 계산
- [ ] 각 로또와 당첨 번호를 비교해 일치 개수를 계산한다.
- [ ] 5개 번호 + 보너스 일치 시 2등으로 판정한다.
- [ ] 당첨 등수별 개수를 집계한다.

### 4️⃣ 수익률 계산
- [ ] 총 당첨 금액 / 구입 금액 * 100으로 수익률을 계산한다.
- [ ] 소수점 둘째 자리에서 반올림하여 출력한다.

### 5️⃣ 예외 처리
- [ ] 모든 예외는 `IllegalArgumentException` 또는 `IllegalStateException`으로 처리.
- [ ] 예외 메시지는 항상 `[ERROR]`로 시작한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%