diff --git a/src/main/java/FlowController b/src/main/java/FlowController new file mode 100644 index 00000000..c15ee258 --- /dev/null +++ b/src/main/java/FlowController @@ -0,0 +1,49 @@ +package controller; + +import domain.model.BunchOfLotties; +import domain.service.Calculator; +import domain.service.Validator; +import domain.model.Lotto; +import domain.model.User; +import domain.model.WinningLotto; +import view.Input; +import view.Output; + +import java.util.List; + +public class FlowManager { + private final Input input = new Input(); + private final Output output = new Output(); + private final Validator validator = new Validator(); + private final User user = new User(); + private final Calculator calculator = new Calculator(); + private final BunchOfLotties bunchOfLotties = new BunchOfLotties(); + + + public void Start(){ + // 금액 입력 -> 검증 -> 개수 계산 -> 로또 생성 -> 유저가 로또 리스트를 가짐. + output.printAskPrice(); + int inputMoney = input.readInputMoney(); + validator.validateAmountOfMoney(inputMoney); + int lottoCount = calculator.getLottoCountByMoney(inputMoney); + List lottoList = bunchOfLotties.createLottoList(lottoCount); + user.setLottoList(lottoList); + + output.printAskNumbers(); + List winningNumbers = input.readLottoNumbers(); + validator.validateNumbers(winningNumbers); // 당첨 넘버 받고, 검증. + + output.printAskBonusNumber(); + int bonusNumber = input.readBonusNumber(); + validator.validateBonusNumber(bonusNumber,winningNumbers); // 보너스 넘버 받고, 검증. + + output.printLotties(lottoList); //생성된 로또 리스트를 보여줌. + + WinningLotto winningLotto = new WinningLotto(winningNumbers, bonusNumber); + user.checkMatchingNumbers(winningLotto); // winningLotto와 체크하고 count를 센다. + output.printMatchingResult(user.getThreeNumberMatchingLottoCount(), user.getFourNumberMatchingLottoCount(), user.getFiveNumberMatchingLottoCount(), user.getWinningLottoCount()); + + double profitability = calculator.getProfitablity(inputMoney,user.getThreeNumberMatchingLottoCount(), user.getFourNumberMatchingLottoCount(), user.getFiveNumberMatchingLottoCount(), user.getWinningLottoCount()); + output.printProfitability(profitability); + } +} diff --git a/src/main/java/READ ME.md b/src/main/java/READ ME.md new file mode 100644 index 00000000..c6d4c42e --- /dev/null +++ b/src/main/java/READ ME.md @@ -0,0 +1,79 @@ +## 입력: +로또 금액: 1000원 단위, 나누어 떨어지지 않으면 예외 처리 +당첨 금액: 6개(", "으로 구분) + 1개 + +## 출력: +로또 수량 +로또 번호 정렬해서 보여주기 + +당첨내역 출력 +수익률 출력 + +## RULE:: 내 state를 남이 건드리면 안돼! + +# 구현하고 싶은 기능들. +* 금액 입력 받기 (개수 자동 계산) [Input] + +-> validation check: 1000원 단위?[validator] + +* 로또 Winning 번호 입력 받기 + 보너스 넘버도.[Input] + +-> Check validation: 개수/중복/범위 [validator] +-> 입력한 값들 오름차순으로 정렬 [] + +* Lotto 생성(사용자 입력도 고려) [] + +-> 1-45 무작위 생성 [RandomNumberCreator] +-> 오름차순 정렬 *** 얘가 문제인데, 많이 쓰이는 기능임. but lotto의 내부의 값을 건드리는 거라서 외부 클래스를 두는 것은 적절하지 않아. [Lotto] +-> Check validation: 개수/중복/범위 [Lotto] + +* 사용자 로또 <-> Winning Lotto 비교 +-> 일치 개수 비교 + +* 사용자 당첨 금액 계산 + + + +* 수익률 계산 +-> 당첨금액 / 소비 금액 +------------- +## FLOW +1. input 사실상 개수 + winning number +2. validate +3. input에 맞는 로또 생성 (User에!!) with RandomNumberCreator + WinningNumber에 사용자 입력 + bonus number 저장. +4. Winning Number <-> User Number랑 비교! (어디서...??) +5. 비교 결과를 바탕으로 수익 계산 + 수익률 계산 +6. 수익률 출력 + +## Lotto Class + + +--------------------------------- + +## 배운 내용: + +* public static final int => #define과 거의 유사! +* List 활용법 +1) 정의: import java.util.List; + List< type> name; 이런 식으로 정의 + +* 겹치지 않고 정수 리스트 생성법 +1) 가장 단순한 방법: 랜덤으로 숫자 생성 -> 기존의 리스트와 비교해서 없으면 ok 아니면 다시! count 세서 원하는 만큼 while loop +2) set이용! +set으로 랜덤 넘버 생성 -> list로 변환 +import java.util.Set; + +Set uniqueNumbers = new HashSet<>(); +int min = 1; +int max = 45; +count = 6; + +while(uniqueNumebr.size() < count){ +int num = random.nextInt(max - min +1) + min; +uniqueNubers.add(num); +} + +List list = new ArrayList +3) 오름차순 정렬방법 +- Collections.sort( list ); + +// 내부 list를 자체로 바꿈. 즉, return하는 것이 아니고 리스트의 값들에 접근해서 순서를 바꾸고 영구적으로 저장함. \ No newline at end of file diff --git a/src/main/java/User_checkMatchingNumbers b/src/main/java/User_checkMatchingNumbers new file mode 100644 index 00000000..a11aedb7 --- /dev/null +++ b/src/main/java/User_checkMatchingNumbers @@ -0,0 +1,16 @@ + public void checkMatchingNumbers(WinningLotto winningLotto) { + List totalList = winningLotto.getTotalNumbers(); + for(Lotto lotto : lottoList){ + if (lotto.getSameNumberCount(totalList) == 3){ + threeNumberMatchingLottoCount++; + } + else if (lotto.getSameNumberCount(totalList) == 4){ + fourNumberMatchingLottoCount++; + } else if (lotto.getSameNumberCount(totalList) == 5) { + fiveNumberMatchingLottoCount++; + } + else if (lotto.getSameNumberCount(totalList) == 6) { + winningLottoCount++; + } + } + } \ No newline at end of file diff --git a/src/main/java/app/Application.java b/src/main/java/app/Application.java new file mode 100644 index 00000000..f19eb8e5 --- /dev/null +++ b/src/main/java/app/Application.java @@ -0,0 +1,14 @@ +package app; + +import controller.FlowManager; + +public class Application { + + public static void main(String[] args) { + + FlowManager flowManager = new FlowManager(); + // TODO: 프로그램 구현 + flowManager.Run(); + + } +} diff --git a/src/main/java/controller/FlowManager.java b/src/main/java/controller/FlowManager.java new file mode 100644 index 00000000..40e5b285 --- /dev/null +++ b/src/main/java/controller/FlowManager.java @@ -0,0 +1,48 @@ +/// user없는 버전. + +package controller; + +import java.util.List; + +import domain.model.BunchOfLotties; +import view.*; +import domain.service.*; +import domain.model.*; + +public class FlowManager { + private Input input = new Input(); + private Output output = new Output(); + private Validator validator = new Validator(); + private Calculator calculator = new Calculator(); + + public void Run() { + + output.printAskPrice(); // 묻고 + int amountOfMoney = input.readInputMoney(); // 입력받고 + validator.validateAmountOfMoney(amountOfMoney); // validation check + + output.printAskWinningNumbers(); + List winningNumbers = input.readNumbers(); + validator.validateNumbers(winningNumbers); + + output.printAskBonusNumber(); + int bonusNumber = input.readBonusNumber(); + validator.validateBonusNumber(bonusNumber, winningNumbers); + + int numberOfLotties = calculator.getLottoCountByMoney(amountOfMoney); // 지불 금액 -> 로또 개수로 변환. + + BunchOfLotties lotties = new BunchOfLotties(numberOfLotties); // 로또 개수에 맞게 생성 + + WinningLotto winningLotto = new WinningLotto(winningNumbers, bonusNumber); // 당첨 로또도 생성함. + + + output.printLotties(lotties.getLottoList()); // 생성한 사용자의 로또들을 print. + List winnerCounts = lotties.getWinningLottiesCounts(winningLotto); + + output.printMatchingResult(winnerCounts); + + double profitMargin = calculator.getProfitMargin(amountOfMoney,winnerCounts); + output.printProfitMargin(profitMargin); + + } +} diff --git a/src/main/java/domain/model/BunchOfLotties.java b/src/main/java/domain/model/BunchOfLotties.java new file mode 100644 index 00000000..4225cce7 --- /dev/null +++ b/src/main/java/domain/model/BunchOfLotties.java @@ -0,0 +1,66 @@ +package domain.model; +import domain.service.LOTTOINFO; +import domain.service.WINNERCOUNT; +import util.RandomNumberCreator; + +import java.util.ArrayList; +import java.util.List; + +public class BunchOfLotties { + int lottiesCount; + RandomNumberCreator randomCreator = new RandomNumberCreator(); // 이걸 instance로 진짜 해야돼? + List lottoList = new ArrayList<>(); + + public BunchOfLotties(int numOfLotties) { + lottoList = createLottoList(numOfLotties); + } + + private List createLottoList(int numberOfLotties){ + List lottoList = new ArrayList<>(); + for(int i = 0; i < numberOfLotties; i++){ + Lotto lotto = new Lotto(randomCreator.createRandomNumbers()); + lottoList.add(lotto); + } + return lottoList; + } + + public List getLottoList() { + return lottoList; + } + + public List getWinningLottiesCounts(WinningLotto winningLotto) { + + List winningLottiesCounts = new ArrayList<>(); + List winningLottoNumbers = winningLotto.getNumbers(); + + int[] winnerCount = new int[WINNERCOUNT.MAXWINNER]; + + for(int i = 0; i < lottoList.size(); i++){ + if(lottoList.get(i).getSameNumberCount(winningLottoNumbers) == LOTTOINFO.MAX_LOTTO_COUNT) + { + winnerCount[WINNERCOUNT.WINNER]++; + } + else if (lottoList.get(i).getSameNumberCount(winningLottoNumbers) == LOTTOINFO.MAX_LOTTO_COUNT -1){ + winnerCount[WINNERCOUNT.SECONDWINNER]++; + } + else if (lottoList.get(i).getSameNumberCount(winningLottoNumbers) == LOTTOINFO.MAX_LOTTO_COUNT -2){ + winnerCount[WINNERCOUNT.THIRDWINNER]++; + } + else if (lottoList.get(i).getSameNumberCount(winningLottoNumbers) == LOTTOINFO.MAX_LOTTO_COUNT -3){ + winnerCount[WINNERCOUNT.FOURTHWINNER]++; + } + else if (lottoList.get(i).getSameNumberCount(winningLottoNumbers) == LOTTOINFO.MAX_LOTTO_COUNT -4){ + winnerCount[WINNERCOUNT.FIFTHWINNER]++; + } + } + + for(int i =0; i < WINNERCOUNT.MAXWINNER; i++){ + winningLottiesCounts.add(winnerCount[i]); + } + + return winningLottiesCounts; + } + + + +} diff --git a/src/main/java/domain/model/Lotto.java b/src/main/java/domain/model/Lotto.java new file mode 100644 index 00000000..2e67aefe --- /dev/null +++ b/src/main/java/domain/model/Lotto.java @@ -0,0 +1,40 @@ +package domain.model; + +import java.util.Collections; +import java.util.List; + +public class Lotto { + private final List numbers; + + public Lotto(List numbers) { + this.numbers = numbers; + Collections.sort(numbers); // 정렬 함. + // this.type = Type.DEFAULT; // 굳이 type 필요한가?? 지금이 직관적인 듯.... + } + + public int getSameNumberCount(List winningNumbers) { // 외부에서 직접 체크를 하지말고 내부에서 체크하자. = lotto내부의 값들을 외부에서 들여다보는게 적절치X + int count = 0; + for(int i = 0; i < numbers.size(); i++) { // MAX_LOTTO_COUNT -> numbers.size() + if(winningNumbers.contains(numbers.get(i))) { + count++; + } + } + + return count; //몇개가 같은지 내보내는 함수 + } + + public List getNumbers() { + return numbers; + } + + public boolean hasBonusNumber(int bonusNum){ + for(Integer number : numbers){ + if(number == bonusNum){ + return true; + } + } + return false; + } + + // TODO: 추가 기능 구현 +} diff --git a/src/main/java/domain/model/WinningLotto.java b/src/main/java/domain/model/WinningLotto.java new file mode 100644 index 00000000..db9ea742 --- /dev/null +++ b/src/main/java/domain/model/WinningLotto.java @@ -0,0 +1,28 @@ +package domain.model; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + + +public class WinningLotto { + // lotto class를 모두가 갖고 있는건 종속성이 너무 강해진다. + private List winningNumbers = new ArrayList(); + private int bonusNumber; + + public WinningLotto(List winningNumbers, int bonusNumber) { + this.winningNumbers = winningNumbers; + Collections.sort(winningNumbers); + this.bonusNumber = bonusNumber; + } + + public List getNumbers() { + + return winningNumbers; + } + + public int getBonusNumber() { + return bonusNumber; + } + + +} diff --git a/src/main/java/domain/service/Calculator.java b/src/main/java/domain/service/Calculator.java new file mode 100644 index 00000000..f97c19bc --- /dev/null +++ b/src/main/java/domain/service/Calculator.java @@ -0,0 +1,18 @@ +package domain.service; +import java.util.List; + +public class Calculator { + + public int getLottoCountByMoney(int money) { + return money / PRIZE.LOTTO_PRICE; + } + + public double getProfitMargin(int originalMoney,List winnerCount) { + int totalPrize = winnerCount.get(WINNERCOUNT.WINNER) * PRIZE.WINNING_PRIZE + winnerCount.get(WINNERCOUNT.SECONDWINNER) * PRIZE.SECOND_WINNER_PRIZE + winnerCount.get(WINNERCOUNT.THIRDWINNER) * PRIZE.THIRD_WINNER_PRIZE + + winnerCount.get(WINNERCOUNT.THIRDWINNER) * PRIZE.FOURTH_WINNER_PRIZE + winnerCount.get(WINNERCOUNT.FIFTHWINNER) * PRIZE.FIFTH_WINNER_PRIZE; + double profitability = (double) totalPrize / originalMoney * 100; // %계산 + + return profitability; + } + +} diff --git a/src/main/java/domain/service/ErrorMessage.java b/src/main/java/domain/service/ErrorMessage.java new file mode 100644 index 00000000..6fc3642f --- /dev/null +++ b/src/main/java/domain/service/ErrorMessage.java @@ -0,0 +1,8 @@ +package domain.service; + +public class ErrorMessage { + static String MONEY_RANGE = "Money must be in units of 1000."; + static String NUMBER_RANGE = "Numbers must be between 1 and 45."; + static String NUMBER_COUNT = "Numbers must be 6 different numbers."; + static String SAME_NUMBER = "Same numbers are not allowed."; +} \ No newline at end of file diff --git a/src/main/java/domain/service/LOTTOINFO.java b/src/main/java/domain/service/LOTTOINFO.java new file mode 100644 index 00000000..afc9ddff --- /dev/null +++ b/src/main/java/domain/service/LOTTOINFO.java @@ -0,0 +1,8 @@ +package domain.service; + +public interface LOTTOINFO { + int MAX_NUMBER = 45; + int MIN_NUMBER = 1; + + int MAX_LOTTO_COUNT = 6; +} diff --git a/src/main/java/domain/service/PRIZE.java b/src/main/java/domain/service/PRIZE.java new file mode 100644 index 00000000..9d9b22f1 --- /dev/null +++ b/src/main/java/domain/service/PRIZE.java @@ -0,0 +1,12 @@ +package domain.service; + +public interface PRIZE { + + int FIFTH_WINNER_PRIZE = 5000; + int FOURTH_WINNER_PRIZE = 50000; + int THIRD_WINNER_PRIZE = 150000; + int SECOND_WINNER_PRIZE = 30000000; + int WINNING_PRIZE = 2000000000; + int LOTTO_PRICE = 1000; +} + diff --git a/src/main/java/domain/service/Validator.java b/src/main/java/domain/service/Validator.java new file mode 100644 index 00000000..fbf429e2 --- /dev/null +++ b/src/main/java/domain/service/Validator.java @@ -0,0 +1,50 @@ +package domain.service; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import domain.service.ErrorMessage; + +public class Validator { + + private static final int MINIMUM_ALLOWED_MOENY = 0; + private static final int MONEY_UNIT = 1000; + + public void validateAmountOfMoney(int money){ + if(money % MONEY_UNIT != 0 || money < MINIMUM_ALLOWED_MOENY) throw new IllegalArgumentException(ErrorMessage.MONEY_RANGE); + } + + public void validateNumbers(List numbers) { // 파라미터의 list가 적절한지 check + if(numbers.size() != LOTTOINFO.MAX_LOTTO_COUNT) { // 개수 체크 + throw new IllegalArgumentException(ErrorMessage.NUMBER_COUNT); + } + + for(int i = 0; i < LOTTOINFO.MAX_LOTTO_COUNT; i++) { // 범위체크 + if(numbers.get(i) < LOTTOINFO.MIN_NUMBER || numbers.get(i) > LOTTOINFO.MAX_NUMBER) { + throw new IllegalArgumentException(ErrorMessage.MONEY_RANGE); + } + } + + //중복 체크 (사용자가 입력할 경우, 겹칠 수도 있음.) + Set numbersSet = new HashSet<>(numbers); + if(numbersSet.size() != LOTTOINFO.MAX_LOTTO_COUNT) { + throw new IllegalArgumentException(ErrorMessage.SAME_NUMBER); + } + + } + public void validateBonusNumber(int bonusNumber, List numbers) { // 중복체크 때문에 어쩔 수 없이 얘도 list를 받아와야 한다. + //범위 체크 + if(bonusNumber < LOTTOINFO.MIN_NUMBER || bonusNumber > LOTTOINFO.MAX_NUMBER) { + throw new IllegalArgumentException(ErrorMessage.NUMBER_RANGE); + } + + //중복 체크 + for(int i = 0; i < LOTTOINFO.MAX_LOTTO_COUNT; i++) { + if(numbers.get(i) == bonusNumber) { + throw new IllegalArgumentException(ErrorMessage.SAME_NUMBER); + } + } + + } +} diff --git a/src/main/java/domain/service/WINNERCOUNT.java b/src/main/java/domain/service/WINNERCOUNT.java new file mode 100644 index 00000000..59d52ab9 --- /dev/null +++ b/src/main/java/domain/service/WINNERCOUNT.java @@ -0,0 +1,11 @@ +package domain.service; + +public interface WINNERCOUNT { + int WINNER = 0; + int SECONDWINNER = 1; + int THIRDWINNER = 2; + int FOURTHWINNER = 3; + int FIFTHWINNER = 4; + + int MAXWINNER = 5; +} diff --git a/src/main/java/lotto/Application.java b/src/main/java/lotto/Application.java deleted file mode 100644 index d190922b..00000000 --- a/src/main/java/lotto/Application.java +++ /dev/null @@ -1,7 +0,0 @@ -package lotto; - -public class Application { - public static void main(String[] args) { - // TODO: 프로그램 구현 - } -} diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Lotto.java deleted file mode 100644 index 519793d1..00000000 --- a/src/main/java/lotto/Lotto.java +++ /dev/null @@ -1,20 +0,0 @@ -package lotto; - -import java.util.List; - -public class Lotto { - private final List numbers; - - public Lotto(List numbers) { - validate(numbers); - this.numbers = numbers; - } - - private void validate(List numbers) { - if (numbers.size() != 6) { - throw new IllegalArgumentException(); - } - } - - // TODO: 추가 기능 구현 -} diff --git a/src/main/java/user b/src/main/java/user new file mode 100644 index 00000000..9044d5d1 --- /dev/null +++ b/src/main/java/user @@ -0,0 +1,37 @@ +package domain.model; + +import java.util.ArrayList; +import java.util.List; + +public class User { // 실제 인스턴스를 누가 가질 것인가... + BunchOfLotties lotties; + + public User(BunchOfLotties bunchOfLotties) { + lotties = bunchOfLotties; + } + + public int getWinnerCount(WinningLotto winningLotto) { + return lotties.getWinnerCount(winningLotto); + } + + public int get2ndWinnerCount(WinningLotto winningLotto) { + return lotties.getWinnerCount(winningLotto); + } + + public int get3rdWinnerCount(WinningLotto winningLotto) { + return lotties.getWinnerCount(winningLotto); + } + + public int get4thWinnerCount(WinningLotto winningLotto) { + return lotties.getWinnerCount(winningLotto); + } + + public int get5thWinnerCount(WinningLotto winningLotto) { + return lotties.getWinnerCount(winningLotto); + } + + public BunchOfLotties getLotties() { + return lotties; + } + +} diff --git a/src/main/java/util/RandomNumberCreator.java b/src/main/java/util/RandomNumberCreator.java new file mode 100644 index 00000000..b3272c66 --- /dev/null +++ b/src/main/java/util/RandomNumberCreator.java @@ -0,0 +1,16 @@ +package util; +import java.util.*; +import camp.nextstep.edu.missionutils.Randoms; + +public class RandomNumberCreator { + public static final int MAX_NUMBER = 45; + public static final int MIN_NUMBER = 1; + public static final int MAX_LOTTO_COUNT = 6; + Random rand = new Random(); + + public List createRandomNumbers(){ + List numbers = Randoms.pickUniqueNumbersInRange(MIN_NUMBER, MAX_NUMBER, MAX_LOTTO_COUNT); + return numbers; + } + +} diff --git a/src/main/java/view/Input.java b/src/main/java/view/Input.java new file mode 100644 index 00000000..429a7f28 --- /dev/null +++ b/src/main/java/view/Input.java @@ -0,0 +1,36 @@ +package view; +import camp.nextstep.edu.missionutils.Console; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class Input { + + public int readInputMoney(){ + String moneyString = Console.readLine().trim(); + + int money = Integer.parseInt(moneyString); + + return money; + } + + public List readNumbers(){ + String rawInput = Console.readLine().trim(); + String[] inputs = rawInput.split(", "); + + List inputNumbers = new ArrayList<>(); + for (String input : inputs) { + inputNumbers.add(Integer.parseInt(input.trim())); + } + + return inputNumbers; + } + + public int readBonusNumber(){ + String bonusNumString = Console.readLine().trim(); + int bonusNum = Integer.parseInt(bonusNumString); + return bonusNum; + } + +} diff --git a/src/main/java/view/Output.java b/src/main/java/view/Output.java new file mode 100644 index 00000000..5d43942f --- /dev/null +++ b/src/main/java/view/Output.java @@ -0,0 +1,56 @@ +package view; + + +/// else 쓰지 말기 / enum 쓰기 / bonus ball원리 + +import domain.model.Lotto; +import domain.service.WINNERCOUNT; + +import java.util.List; + +public class Output { + public void printAskPrice(){ + System.out.println("구입하실 금액을 입력하세요: "); + } + + public void printAskWinningNumbers(){ + System.out.println("당첨번호를 입력하세요: "); + } + + public void printAskBonusNumber(){ + System.out.println("보너스 번호를 입력하세요: "); + } + + private void printLotto(List numbers){ + int count = numbers.size(); // 과연 이게 좋을까?? 이미 로또의 사이즈가 확정적으로 정해져있음.. 그치만 혹시 모를 상황을 생각해서 일단 이렇게 함... + System.out.println(count + "개를 구매했습니다."); + System.out.print("[ "); + for(int i = 0; i < count; i++) { + if(i == count-1) System.out.print(numbers.get(i)); + else System.out.print(numbers.get(i) + ", "); + } + System.out.println(" ]"); + } + + public void printLotties(List lottoList){ + for(int i =0; i < lottoList.size(); i++) { + Lotto lotto = lottoList.get(i); + + printLotto(lotto.getNumbers()); + } + } + + public void printMatchingResult(List winnerCounts){ + System.out.println("3개 일치 (5,000원) -- " + winnerCounts.get(WINNERCOUNT.WINNER) + "개"); + System.out.println("4개 일치 (50,000원) -- " + winnerCounts.get(WINNERCOUNT.SECONDWINNER) + "개"); + System.out.println("5개 일치 (1,500,000원) -- " + winnerCounts.get(WINNERCOUNT.THIRDWINNER) + "개"); + System.out.println("5개 일치 + 보너스 숫자 일치 (30,000,000d원)" + winnerCounts.get(WINNERCOUNT.FOURTHWINNER) + "개"); + System.out.println("6개 일치 (2,000,000,000원) -- " + winnerCounts.get(WINNERCOUNT.FIFTHWINNER) + "개"); + } + + public void printProfitMargin(double profitability){ + System.out.println("총 수익률은 " + profitability + "% 입니다."); + } + + +} \ No newline at end of file diff --git a/src/test/java/lotto/ApplicationTest.java b/src/test/java/lotto/ApplicationTest.java index a15c7d1f..44495f52 100644 --- a/src/test/java/lotto/ApplicationTest.java +++ b/src/test/java/lotto/ApplicationTest.java @@ -1,5 +1,6 @@ package lotto; +import app.Application; import camp.nextstep.edu.missionutils.test.NsTest; import org.junit.jupiter.api.Test; diff --git a/src/test/java/lotto/LottoTest.java b/src/test/java/lotto/LottoTest.java index 0f3af0f6..1c644af0 100644 --- a/src/test/java/lotto/LottoTest.java +++ b/src/test/java/lotto/LottoTest.java @@ -1,5 +1,6 @@ package lotto; +import domain.model.Lotto; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test;