From 562d80fea521b14a2f1d13504fdfffef96bde9af Mon Sep 17 00:00:00 2001 From: seongjae6751 Date: Tue, 9 Jul 2024 00:27:27 +0900 Subject: [PATCH] step1 --- src/main/java/Lotto.java | 20 ++++++++++++++ src/main/java/LottoApp.java | 12 +++++++++ src/main/java/LottoMachine.java | 47 +++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 src/main/java/Lotto.java create mode 100644 src/main/java/LottoApp.java create mode 100644 src/main/java/LottoMachine.java diff --git a/src/main/java/Lotto.java b/src/main/java/Lotto.java new file mode 100644 index 00000000..a69d9080 --- /dev/null +++ b/src/main/java/Lotto.java @@ -0,0 +1,20 @@ +import java.util.Collections; +import java.util.List; + +public class Lotto { + private List numbers; + + public Lotto(List numbers) { + Collections.sort(numbers); + this.numbers = numbers; + } + + public List getNumbers() { + return numbers; + } + + @Override + public String toString() { + return numbers.toString(); + } +} diff --git a/src/main/java/LottoApp.java b/src/main/java/LottoApp.java new file mode 100644 index 00000000..8b084dc4 --- /dev/null +++ b/src/main/java/LottoApp.java @@ -0,0 +1,12 @@ +import java.util.List; + +public class LottoApp { + public static void main(String[] args) { + LottoMachine lottoMachine = new LottoMachine(); + int purchaseAmount = lottoMachine.getPurchaseAmount(); + int numberOfLottos = lottoMachine.calculateNumberOfLottos(purchaseAmount); + lottoMachine.printPurchaseInfo(numberOfLottos); + List lottos = lottoMachine.generateLottos(numberOfLottos); + lottoMachine.printLottos(lottos); + } +} diff --git a/src/main/java/LottoMachine.java b/src/main/java/LottoMachine.java new file mode 100644 index 00000000..0be91cd1 --- /dev/null +++ b/src/main/java/LottoMachine.java @@ -0,0 +1,47 @@ +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Scanner; + +public class LottoMachine { + private static final int LOTTO_PRICE = 1000; + private static final int LOTTO_NUMBER_COUNT = 6; + private static final int LOTTO_MAX_NUMBER = 45; + + public int getPurchaseAmount() { + Scanner scanner = new Scanner(System.in); + System.out.println("구입금액을 입력해 주세요."); + return scanner.nextInt(); + } + + public int calculateNumberOfLottos(int purchaseAmount) { + return purchaseAmount / LOTTO_PRICE; + } + + public void printPurchaseInfo(int numberOfLottos) { + System.out.println(numberOfLottos + "개를 구매했습니다."); + } + + public List generateLottos(int numberOfLottos) { + List lottos = new ArrayList<>(); + for (int i = 0; i < numberOfLottos; i++) { + lottos.add(generateLotto()); + } + return lottos; + } + + private Lotto generateLotto() { + List numbers = new ArrayList<>(); + for (int i = 1; i <= LOTTO_MAX_NUMBER; i++) { + numbers.add(i); + } + Collections.shuffle(numbers); + return new Lotto(numbers.subList(0, LOTTO_NUMBER_COUNT)); + } + + public void printLottos(List lottos) { + for (Lotto lotto : lottos) { + System.out.println(lotto); + } + } +}