diff --git a/docs/README.md b/docs/README.md
index e69de29bb2d..49520b33786 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -0,0 +1,43 @@
+# 요구 사항
+## 기능 요구 사항
+- 사용자가 로또 구입 금액 입력 시 그에 해당하는 만큼 로또 발행
+ - 로또 번호의 숫자 범위는 1~45까지
+ - 1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑음
+ - 로또 한 개의 가격은 1000원
+- 당첨 번호는 입력을 통해 받음
+ - 당첨 번호와 보너스 번호까지 입력 받음
+ - 1~45까지의 중복되지 않는 숫자
+ - 보너스 번호는 당첨 번호와 같은 숫자면 안 됨
+- 당첨 가격
+ - 1등 6개 번호 일치 / 2,000,000,000원
+ - 2등 5개 + 보너스 번호 일치 / 30,000,000원
+ - 3등 5개 번호 일치 / 1,500,000원
+ - 4등 4개 번호 일치 / 50000원
+ - 5등 3개 번호 일치 / 5000원
+
+## 입력 요구 사항
+- 로또 구입 금액을 입력 받음
+ - 1000원 단위로 입력 받으며
+ - 1000원으로 나누어 떨어지지 않으면 예외처리
+- 당첨 번호를 입력 받음
+ - 쉼표를 기준으로 구분
+ - 보너스 번호도 입력
+
+## 출력 요구 사항
+- 구입금액을 입력해 주세요.
+- 3개를 구매했습니다.
+[8, 21, 23, 41, 42, 43]
+[3, 5, 11, 16, 32, 38]
+[7, 11, 16, 35, 36, 44]
+#### 위와 같이 로또 당첨 번호를 출력하며, 오름 차순으로 정렬한다.
+- 당첨 번호를 입력해 주세요
+- 보너스 번호를 입력해 주세요
+- 당첨 통계
+"---"
+ 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%입니다.
+#### 위와 같이 당첨 된 금액을 알려주고, 총 수익률을 계산해서 알려준다.
\ No newline at end of file
diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Lotto.java
index 519793d1f73..9f385ef3427 100644
--- a/src/main/java/lotto/Lotto.java
+++ b/src/main/java/lotto/Lotto.java
@@ -1,6 +1,8 @@
package lotto;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
public class Lotto {
private final List numbers;
@@ -10,10 +12,19 @@ public Lotto(List numbers) {
this.numbers = numbers;
}
- private void validate(List numbers) {
+ private void validate(List numbers) throws IllegalArgumentException{
if (numbers.size() != 6) {
throw new IllegalArgumentException();
}
+ isDuplicate(numbers);
+ }
+ private void isDuplicate(List numbers) {
+ Set uniqueNumbers = new HashSet<>();
+ for (Integer number : numbers) {
+ if (!uniqueNumbers.add(number)) {
+ throw new IllegalArgumentException();
+ }
+ }
}
// TODO: 추가 기능 구현