From bc6602885bfbefbc2bb7b13ceeceb9b0dbf7a171 Mon Sep 17 00:00:00 2001 From: ryansewook Date: Thu, 14 Mar 2024 18:41:31 +0900 Subject: [PATCH 1/8] Commit --- src/main/java/lotto/Application.java | 10 +++ src/main/java/lotto/InOut.java | 29 +++++++ src/main/java/lotto/Lotto.java | 9 ++ src/main/java/lotto/LottoResult.java | 18 ++++ src/main/java/lotto/RandomLotto.java | 13 +++ src/main/java/lotto/Start.java | 118 +++++++++++++++++++++++++++ 6 files changed, 197 insertions(+) create mode 100644 src/main/java/lotto/InOut.java create mode 100644 src/main/java/lotto/LottoResult.java create mode 100644 src/main/java/lotto/RandomLotto.java create mode 100644 src/main/java/lotto/Start.java diff --git a/src/main/java/lotto/Application.java b/src/main/java/lotto/Application.java index d190922..6bfa579 100644 --- a/src/main/java/lotto/Application.java +++ b/src/main/java/lotto/Application.java @@ -1,7 +1,17 @@ package lotto; +import camp.nextstep.edu.missionutils.Randoms; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + public class Application { + public static void main(String[] args) { // TODO: 프로그램 구현 + Start start = new Start(); + start.run(); + } } diff --git a/src/main/java/lotto/InOut.java b/src/main/java/lotto/InOut.java new file mode 100644 index 0000000..6f22f70 --- /dev/null +++ b/src/main/java/lotto/InOut.java @@ -0,0 +1,29 @@ +package lotto; + +import camp.nextstep.edu.missionutils.Console; + +import java.util.ArrayList; +import java.util.List; + +public class InOut { + public InOut(){} + + public List InWinningLotto(){ + System.out.println("당첨 로또 번호 : "); + String[] input = Console.readLine().split(","); + List WinningLotto = new ArrayList<>(); + for(int i=0;i<6;i++){ + WinningLotto.add(Integer.parseInt(input[i])); + } + return WinningLotto; + } + public Integer InLottoMoney(){ + System.out.println("투입 금액 : "); + return Integer.parseInt(Console.readLine()); + } + public Integer InBonusNum(){ + System.out.println("보너스 번호 : "); + return Integer.parseInt(Console.readLine()); + } + +} diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Lotto.java index 519793d..86caf1d 100644 --- a/src/main/java/lotto/Lotto.java +++ b/src/main/java/lotto/Lotto.java @@ -1,5 +1,7 @@ package lotto; +import camp.nextstep.edu.missionutils.Randoms; + import java.util.List; public class Lotto { @@ -16,5 +18,12 @@ private void validate(List numbers) { } } + public List getLotto(){ + return numbers; + } // TODO: 추가 기능 구현 } + + + + diff --git a/src/main/java/lotto/LottoResult.java b/src/main/java/lotto/LottoResult.java new file mode 100644 index 0000000..6037170 --- /dev/null +++ b/src/main/java/lotto/LottoResult.java @@ -0,0 +1,18 @@ +package lotto; + +import java.util.List; + +public class LottoResult { + public LottoResult(){} + + public long getLottoResult(List LottoList,List WinningLotto){ + return LottoList.stream() + .filter(WinningLotto::contains) + .count(); + + } + public Boolean getBounsResult(Integer BounNum,List WinningLotto){ + return WinningLotto.contains(BounNum); + } + +} diff --git a/src/main/java/lotto/RandomLotto.java b/src/main/java/lotto/RandomLotto.java new file mode 100644 index 0000000..2c9f985 --- /dev/null +++ b/src/main/java/lotto/RandomLotto.java @@ -0,0 +1,13 @@ +package lotto; + +import camp.nextstep.edu.missionutils.Randoms; + +import java.util.List; + +public class RandomLotto { + public RandomLotto(){} + + public List getRandomlotto(){ + return Randoms.pickUniqueNumbersInRange(1,45,6); + } +} diff --git a/src/main/java/lotto/Start.java b/src/main/java/lotto/Start.java new file mode 100644 index 0000000..d363234 --- /dev/null +++ b/src/main/java/lotto/Start.java @@ -0,0 +1,118 @@ +package lotto; + +import java.util.*; + +public class Start { + public Start(){} + + public int FIRST = 0; //6개 - 2,000,000,000 + public int SECOND = 0; //5개 + 보너스 - 50,000,000 + public int THIRD = 0; //5개 - 1,500,000 + public int FORTH = 0; //4개 - 50,000 + public int FIVTH = 0; //3개 - 5,000 + + + public void run(){ + InOut inOut = new InOut(); + LottoResult lottoResult = new LottoResult(); + + int LottoMoney = inOut.InLottoMoney(); //투입 금액 입력 + int LottoAmount = LottoMoney/1000; //로또 개수 확인 + + List myRandomLottoList = new ArrayList<>(); + myRandomLottoList = setRandomLottoList(LottoAmount); //LottoAmount 개의 랜덤 로또 번호 생성 + + System.out.println(LottoAmount+"개를 구매하셨습니다"); + + for(List LottoList : myRandomLottoList){ //랜덤으로 생성된 로또 출력 + System.out.println(LottoList); } + + + List WinningLotto = inOut.InWinningLotto(); //로또 당첨 번호 입력 + int BonusNum = inOut.InBonusNum(); //보너스 번호 입력 + + /* + System.out.println("로또 개수 : "+LottoAmount); + System.out.println("당첨 로또 번호:"+WinningLotto); + System.out.println("보너스 로또 번호 : "+BonusNum); + */ + + + for(List LottoList : myRandomLottoList){ //로또 당첨 결과 설정 + int Count = getResult(LottoList,WinningLotto); + setResult(Count,WinningLotto,BonusNum); } + + /* + System.out.println("FIRST = "+FIRST); + System.out.println("SECOND = "+SECOND); + System.out.println("THIRD = "+THIRD); + System.out.println("FORTH = "+FORTH); + System.out.println("FIVTH = "+FIVTH); + */ + + int ResultMoney = FIRST*2000000000 + SECOND*30000000 + THIRD*1500000 + FORTH*50000 + FIVTH*5000; + + /* + System.out.println("ResultMoney : "+ResultMoney); + System.out.println("LottoMoney : "+LottoMoney); + */ + + System.out.println("수익률 : "+getRateOfReturn(ResultMoney,LottoMoney)+"%"); + + + + } + + private static List setRandomLotto(){ //단일 로또 생성 + RandomLotto randomLotto = new RandomLotto(); + Lotto lotto = new Lotto(randomLotto.getRandomlotto()); + return lotto.getLotto(); + } + public static List setRandomLottoList(Integer Amount){ //Amount개의 로또 생성 + List RandomLottoList = new ArrayList<>(); + for(int i=0;i LottoList,List WinningLotto){ //개별 로또의 결과 확인 + LottoResult lottoResult = new LottoResult(); + return (int)lottoResult.getLottoResult(LottoList,WinningLotto); + } + + private void setResult(Integer Count,List WinningLotto , Integer BonusNum){ //등수에 해당하는 로또 개수 업데이트 + LottoResult lottoResult = new LottoResult(); + switch (Count){ + case 3: + FIVTH++; + break; + case 4: + FORTH++; + break; + case 5: + if(lottoResult.getBounsResult(BonusNum,WinningLotto) == Boolean.TRUE){ + //System.out.println("보너스 o"); + SECOND++; + break; + } + else if(lottoResult.getBounsResult(BonusNum,WinningLotto) == Boolean.FALSE) { + //System.out.println("보너스 x"); + THIRD++; + break; + } + case 6: + FIRST++; + break; + } + } + + private double getRateOfReturn(double ResultMoney,double LottoMoney){ //수익률 계산 + double a = (ResultMoney/LottoMoney); + return Math.round(a*10.0)/10.0; + } + + + +} From bb8d6341add0efd41734e5ea74dc8deda6a141ba Mon Sep 17 00:00:00 2001 From: ryansewook Date: Thu, 14 Mar 2024 18:49:11 +0900 Subject: [PATCH 2/8] Commit --- src/main/java/lotto/InOut.java | 6 +++--- src/main/java/lotto/Start.java | 20 ++++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/main/java/lotto/InOut.java b/src/main/java/lotto/InOut.java index 6f22f70..b23d089 100644 --- a/src/main/java/lotto/InOut.java +++ b/src/main/java/lotto/InOut.java @@ -9,7 +9,7 @@ public class InOut { public InOut(){} public List InWinningLotto(){ - System.out.println("당첨 로또 번호 : "); + System.out.println("당첨 번호를 입력해 주세요 "); String[] input = Console.readLine().split(","); List WinningLotto = new ArrayList<>(); for(int i=0;i<6;i++){ @@ -18,11 +18,11 @@ public List InWinningLotto(){ return WinningLotto; } public Integer InLottoMoney(){ - System.out.println("투입 금액 : "); + System.out.println("구입 금액을 입력해 주세요 "); return Integer.parseInt(Console.readLine()); } public Integer InBonusNum(){ - System.out.println("보너스 번호 : "); + System.out.println("보너스 번호를 입력해 주세요"); return Integer.parseInt(Console.readLine()); } diff --git a/src/main/java/lotto/Start.java b/src/main/java/lotto/Start.java index d363234..cf6438f 100644 --- a/src/main/java/lotto/Start.java +++ b/src/main/java/lotto/Start.java @@ -42,21 +42,17 @@ public void run(){ int Count = getResult(LottoList,WinningLotto); setResult(Count,WinningLotto,BonusNum); } - /* - System.out.println("FIRST = "+FIRST); - System.out.println("SECOND = "+SECOND); - System.out.println("THIRD = "+THIRD); - System.out.println("FORTH = "+FORTH); - System.out.println("FIVTH = "+FIVTH); - */ + int ResultMoney = FIRST*2000000000 + SECOND*30000000 + THIRD*1500000 + FORTH*50000 + FIVTH*5000; + /* System.out.println("ResultMoney : "+ResultMoney); System.out.println("LottoMoney : "+LottoMoney); */ + ResultStatistics(); //결과 출력 System.out.println("수익률 : "+getRateOfReturn(ResultMoney,LottoMoney)+"%"); @@ -114,5 +110,13 @@ private double getRateOfReturn(double ResultMoney,double LottoMoney){ //수익 } - + private void ResultStatistics(){ + System.out.println("당첨 통계"); + System.out.println("---"); + System.out.println("3개 일치 (5,000원) - "+FIVTH+"개"); + System.out.println("4개 일치 (50,000원) - "+FORTH+"개"); + System.out.println("5개 일치 (1,500,000원) - "+THIRD+"개"); + System.out.println("5개 일치, 보너스 볼 일치(30,000,000원) - "+SECOND+"개"); + System.out.println("6개 일치 (2,000,000,000원) - "+FIRST+"개"); + } } From 207f195e14fa3341b306feec130acda10d8b2a35 Mon Sep 17 00:00:00 2001 From: ryansewook Date: Thu, 14 Mar 2024 19:42:06 +0900 Subject: [PATCH 3/8] Commit --- src/main/java/lotto/Start.java | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/src/main/java/lotto/Start.java b/src/main/java/lotto/Start.java index cf6438f..ab9bee1 100644 --- a/src/main/java/lotto/Start.java +++ b/src/main/java/lotto/Start.java @@ -16,8 +16,7 @@ public void run(){ InOut inOut = new InOut(); LottoResult lottoResult = new LottoResult(); - int LottoMoney = inOut.InLottoMoney(); //투입 금액 입력 - int LottoAmount = LottoMoney/1000; //로또 개수 확인 + int LottoAmount =inOut.InLottoMoney()/1000; //로또 개수 확인 List myRandomLottoList = new ArrayList<>(); myRandomLottoList = setRandomLottoList(LottoAmount); //LottoAmount 개의 랜덤 로또 번호 생성 @@ -31,30 +30,13 @@ public void run(){ List WinningLotto = inOut.InWinningLotto(); //로또 당첨 번호 입력 int BonusNum = inOut.InBonusNum(); //보너스 번호 입력 - /* - System.out.println("로또 개수 : "+LottoAmount); - System.out.println("당첨 로또 번호:"+WinningLotto); - System.out.println("보너스 로또 번호 : "+BonusNum); - */ - - for(List LottoList : myRandomLottoList){ //로또 당첨 결과 설정 int Count = getResult(LottoList,WinningLotto); setResult(Count,WinningLotto,BonusNum); } + ResultStatistics(LottoAmount); //결과 출력 - int ResultMoney = FIRST*2000000000 + SECOND*30000000 + THIRD*1500000 + FORTH*50000 + FIVTH*5000; - - - /* - System.out.println("ResultMoney : "+ResultMoney); - System.out.println("LottoMoney : "+LottoMoney); - */ - - ResultStatistics(); //결과 출력 - System.out.println("수익률 : "+getRateOfReturn(ResultMoney,LottoMoney)+"%"); - } @@ -110,7 +92,8 @@ private double getRateOfReturn(double ResultMoney,double LottoMoney){ //수익 } - private void ResultStatistics(){ + private void ResultStatistics(int LottoAmount){ + int ResultMoney = FIRST*2000000000 + SECOND*30000000 + THIRD*1500000 + FORTH*50000 + FIVTH*5000; System.out.println("당첨 통계"); System.out.println("---"); System.out.println("3개 일치 (5,000원) - "+FIVTH+"개"); @@ -118,5 +101,6 @@ private void ResultStatistics(){ System.out.println("5개 일치 (1,500,000원) - "+THIRD+"개"); System.out.println("5개 일치, 보너스 볼 일치(30,000,000원) - "+SECOND+"개"); System.out.println("6개 일치 (2,000,000,000원) - "+FIRST+"개"); + System.out.println("총 수익률은"+getRateOfReturn(ResultMoney,LottoAmount*1000)+"% 입니다"); } } From 49c3cbc9d281d7d13feb8822a8292a43e2da5277 Mon Sep 17 00:00:00 2001 From: ryansewook Date: Fri, 15 Mar 2024 00:10:08 +0900 Subject: [PATCH 4/8] Commit --- src/main/java/lotto/InOut.java | 4 +++- src/main/java/lotto/Start.java | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/lotto/InOut.java b/src/main/java/lotto/InOut.java index b23d089..6cd5655 100644 --- a/src/main/java/lotto/InOut.java +++ b/src/main/java/lotto/InOut.java @@ -9,13 +9,15 @@ public class InOut { public InOut(){} public List InWinningLotto(){ + System.out.println("당첨 번호를 입력해 주세요 "); String[] input = Console.readLine().split(","); List WinningLotto = new ArrayList<>(); for(int i=0;i<6;i++){ WinningLotto.add(Integer.parseInt(input[i])); } - return WinningLotto; + + return new Lotto(WinningLotto).getLotto(); } public Integer InLottoMoney(){ System.out.println("구입 금액을 입력해 주세요 "); diff --git a/src/main/java/lotto/Start.java b/src/main/java/lotto/Start.java index ab9bee1..e907e93 100644 --- a/src/main/java/lotto/Start.java +++ b/src/main/java/lotto/Start.java @@ -92,7 +92,7 @@ private double getRateOfReturn(double ResultMoney,double LottoMoney){ //수익 } - private void ResultStatistics(int LottoAmount){ + private void ResultStatistics(int LottoAmount){ //로또 최종 통계 출력 int ResultMoney = FIRST*2000000000 + SECOND*30000000 + THIRD*1500000 + FORTH*50000 + FIVTH*5000; System.out.println("당첨 통계"); System.out.println("---"); @@ -101,6 +101,6 @@ private void ResultStatistics(int LottoAmount){ System.out.println("5개 일치 (1,500,000원) - "+THIRD+"개"); System.out.println("5개 일치, 보너스 볼 일치(30,000,000원) - "+SECOND+"개"); System.out.println("6개 일치 (2,000,000,000원) - "+FIRST+"개"); - System.out.println("총 수익률은"+getRateOfReturn(ResultMoney,LottoAmount*1000)+"% 입니다"); + System.out.println("총 수익률은 "+getRateOfReturn(ResultMoney,LottoAmount*1000)+"% 입니다"); } } From ef2c1c3ce905fd80f46bf7e7bedb95ab32fb3c69 Mon Sep 17 00:00:00 2001 From: ryansewook Date: Fri, 15 Mar 2024 00:15:02 +0900 Subject: [PATCH 5/8] Commit --- src/main/java/lotto/{ => Controller}/Start.java | 7 ++++++- src/main/java/lotto/{ => Domain}/InOut.java | 2 +- src/main/java/lotto/{ => Domain}/Lotto.java | 2 +- src/main/java/lotto/{ => Domain}/LottoResult.java | 2 +- src/main/java/lotto/{ => Domain}/RandomLotto.java | 2 +- src/main/java/lotto/{ => View}/Application.java | 8 ++------ src/test/java/lotto/ApplicationTest.java | 1 + src/test/java/lotto/LottoTest.java | 1 + 8 files changed, 14 insertions(+), 11 deletions(-) rename src/main/java/lotto/{ => Controller}/Start.java (96%) rename src/main/java/lotto/{ => Domain}/InOut.java (97%) rename src/main/java/lotto/{ => Domain}/Lotto.java (95%) rename src/main/java/lotto/{ => Domain}/LottoResult.java (94%) rename src/main/java/lotto/{ => Domain}/RandomLotto.java (91%) rename src/main/java/lotto/{ => View}/Application.java (55%) diff --git a/src/main/java/lotto/Start.java b/src/main/java/lotto/Controller/Start.java similarity index 96% rename from src/main/java/lotto/Start.java rename to src/main/java/lotto/Controller/Start.java index e907e93..9be38c8 100644 --- a/src/main/java/lotto/Start.java +++ b/src/main/java/lotto/Controller/Start.java @@ -1,4 +1,9 @@ -package lotto; +package lotto.Controller; + +import lotto.Domain.InOut; +import lotto.Domain.Lotto; +import lotto.Domain.LottoResult; +import lotto.Domain.RandomLotto; import java.util.*; diff --git a/src/main/java/lotto/InOut.java b/src/main/java/lotto/Domain/InOut.java similarity index 97% rename from src/main/java/lotto/InOut.java rename to src/main/java/lotto/Domain/InOut.java index 6cd5655..8ed296a 100644 --- a/src/main/java/lotto/InOut.java +++ b/src/main/java/lotto/Domain/InOut.java @@ -1,4 +1,4 @@ -package lotto; +package lotto.Domain; import camp.nextstep.edu.missionutils.Console; diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Domain/Lotto.java similarity index 95% rename from src/main/java/lotto/Lotto.java rename to src/main/java/lotto/Domain/Lotto.java index 86caf1d..f4b1547 100644 --- a/src/main/java/lotto/Lotto.java +++ b/src/main/java/lotto/Domain/Lotto.java @@ -1,4 +1,4 @@ -package lotto; +package lotto.Domain; import camp.nextstep.edu.missionutils.Randoms; diff --git a/src/main/java/lotto/LottoResult.java b/src/main/java/lotto/Domain/LottoResult.java similarity index 94% rename from src/main/java/lotto/LottoResult.java rename to src/main/java/lotto/Domain/LottoResult.java index 6037170..e1849d1 100644 --- a/src/main/java/lotto/LottoResult.java +++ b/src/main/java/lotto/Domain/LottoResult.java @@ -1,4 +1,4 @@ -package lotto; +package lotto.Domain; import java.util.List; diff --git a/src/main/java/lotto/RandomLotto.java b/src/main/java/lotto/Domain/RandomLotto.java similarity index 91% rename from src/main/java/lotto/RandomLotto.java rename to src/main/java/lotto/Domain/RandomLotto.java index 2c9f985..95e511c 100644 --- a/src/main/java/lotto/RandomLotto.java +++ b/src/main/java/lotto/Domain/RandomLotto.java @@ -1,4 +1,4 @@ -package lotto; +package lotto.Domain; import camp.nextstep.edu.missionutils.Randoms; diff --git a/src/main/java/lotto/Application.java b/src/main/java/lotto/View/Application.java similarity index 55% rename from src/main/java/lotto/Application.java rename to src/main/java/lotto/View/Application.java index 6bfa579..efc8d19 100644 --- a/src/main/java/lotto/Application.java +++ b/src/main/java/lotto/View/Application.java @@ -1,10 +1,6 @@ -package lotto; +package lotto.View; -import camp.nextstep.edu.missionutils.Randoms; - -import java.util.ArrayList; -import java.util.List; -import java.util.Scanner; +import lotto.Controller.Start; public class Application { diff --git a/src/test/java/lotto/ApplicationTest.java b/src/test/java/lotto/ApplicationTest.java index a15c7d1..751d3c8 100644 --- a/src/test/java/lotto/ApplicationTest.java +++ b/src/test/java/lotto/ApplicationTest.java @@ -1,6 +1,7 @@ package lotto; import camp.nextstep.edu.missionutils.test.NsTest; +import lotto.View.Application; import org.junit.jupiter.api.Test; import java.util.List; diff --git a/src/test/java/lotto/LottoTest.java b/src/test/java/lotto/LottoTest.java index 0f3af0f..9eb00e6 100644 --- a/src/test/java/lotto/LottoTest.java +++ b/src/test/java/lotto/LottoTest.java @@ -1,5 +1,6 @@ package lotto; +import lotto.Domain.Lotto; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; From 6a3ed66e0e59f0a1a9dfa80b14595f304c7ccb0a Mon Sep 17 00:00:00 2001 From: ryansewook Date: Fri, 15 Mar 2024 23:10:25 +0900 Subject: [PATCH 6/8] Commit --- src/main/java/lotto/{View => }/Application.java | 2 +- src/main/java/lotto/Controller/Start.java | 2 +- src/main/java/lotto/{Domain => View}/InOut.java | 3 ++- src/test/java/lotto/ApplicationTest.java | 1 - 4 files changed, 4 insertions(+), 4 deletions(-) rename src/main/java/lotto/{View => }/Application.java (91%) rename src/main/java/lotto/{Domain => View}/InOut.java (94%) diff --git a/src/main/java/lotto/View/Application.java b/src/main/java/lotto/Application.java similarity index 91% rename from src/main/java/lotto/View/Application.java rename to src/main/java/lotto/Application.java index efc8d19..f4d5c6e 100644 --- a/src/main/java/lotto/View/Application.java +++ b/src/main/java/lotto/Application.java @@ -1,4 +1,4 @@ -package lotto.View; +package lotto; import lotto.Controller.Start; diff --git a/src/main/java/lotto/Controller/Start.java b/src/main/java/lotto/Controller/Start.java index 9be38c8..81c0a4e 100644 --- a/src/main/java/lotto/Controller/Start.java +++ b/src/main/java/lotto/Controller/Start.java @@ -1,6 +1,6 @@ package lotto.Controller; -import lotto.Domain.InOut; +import lotto.View.InOut; import lotto.Domain.Lotto; import lotto.Domain.LottoResult; import lotto.Domain.RandomLotto; diff --git a/src/main/java/lotto/Domain/InOut.java b/src/main/java/lotto/View/InOut.java similarity index 94% rename from src/main/java/lotto/Domain/InOut.java rename to src/main/java/lotto/View/InOut.java index 8ed296a..0e2cfa7 100644 --- a/src/main/java/lotto/Domain/InOut.java +++ b/src/main/java/lotto/View/InOut.java @@ -1,6 +1,7 @@ -package lotto.Domain; +package lotto.View; import camp.nextstep.edu.missionutils.Console; +import lotto.Domain.Lotto; import java.util.ArrayList; import java.util.List; diff --git a/src/test/java/lotto/ApplicationTest.java b/src/test/java/lotto/ApplicationTest.java index 751d3c8..a15c7d1 100644 --- a/src/test/java/lotto/ApplicationTest.java +++ b/src/test/java/lotto/ApplicationTest.java @@ -1,7 +1,6 @@ package lotto; import camp.nextstep.edu.missionutils.test.NsTest; -import lotto.View.Application; import org.junit.jupiter.api.Test; import java.util.List; From eac8b5713eb57ccbc20a74be9a11a194de46febc Mon Sep 17 00:00:00 2001 From: ryansewook Date: Sat, 16 Mar 2024 00:46:35 +0900 Subject: [PATCH 7/8] Commit --- src/main/java/lotto/Controller/Start.java | 24 +++++++++-------------- src/main/java/lotto/View/InOut.java | 18 +++++++++++++++++ 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/main/java/lotto/Controller/Start.java b/src/main/java/lotto/Controller/Start.java index 81c0a4e..6ebb5fb 100644 --- a/src/main/java/lotto/Controller/Start.java +++ b/src/main/java/lotto/Controller/Start.java @@ -27,9 +27,7 @@ public void run(){ myRandomLottoList = setRandomLottoList(LottoAmount); //LottoAmount 개의 랜덤 로또 번호 생성 System.out.println(LottoAmount+"개를 구매하셨습니다"); - - for(List LottoList : myRandomLottoList){ //랜덤으로 생성된 로또 출력 - System.out.println(LottoList); } + inOut.OutLottoList(myRandomLottoList); //랜덤으로 생성된 로또 출력 List WinningLotto = inOut.InWinningLotto(); //로또 당첨 번호 입력 @@ -39,7 +37,9 @@ public void run(){ int Count = getResult(LottoList,WinningLotto); setResult(Count,WinningLotto,BonusNum); } - ResultStatistics(LottoAmount); //결과 출력 + double RateOfReturn = getRateOfReturn(getResultMoney(),LottoAmount*1000); //수익률 + + inOut.OutResultStatistics(FIRST,SECOND,THIRD,FORTH,FIVTH,RateOfReturn); //결과 출력 @@ -96,16 +96,10 @@ private double getRateOfReturn(double ResultMoney,double LottoMoney){ //수익 return Math.round(a*10.0)/10.0; } - - private void ResultStatistics(int LottoAmount){ //로또 최종 통계 출력 - int ResultMoney = FIRST*2000000000 + SECOND*30000000 + THIRD*1500000 + FORTH*50000 + FIVTH*5000; - System.out.println("당첨 통계"); - System.out.println("---"); - System.out.println("3개 일치 (5,000원) - "+FIVTH+"개"); - System.out.println("4개 일치 (50,000원) - "+FORTH+"개"); - System.out.println("5개 일치 (1,500,000원) - "+THIRD+"개"); - System.out.println("5개 일치, 보너스 볼 일치(30,000,000원) - "+SECOND+"개"); - System.out.println("6개 일치 (2,000,000,000원) - "+FIRST+"개"); - System.out.println("총 수익률은 "+getRateOfReturn(ResultMoney,LottoAmount*1000)+"% 입니다"); + private double getResultMoney(){ + return FIRST*2000000000 + SECOND*30000000 + THIRD*1500000 + FORTH*50000 + FIVTH*5000; } + + + } diff --git a/src/main/java/lotto/View/InOut.java b/src/main/java/lotto/View/InOut.java index 0e2cfa7..10bdf58 100644 --- a/src/main/java/lotto/View/InOut.java +++ b/src/main/java/lotto/View/InOut.java @@ -29,4 +29,22 @@ public Integer InBonusNum(){ return Integer.parseInt(Console.readLine()); } + public void OutResultStatistics(int FIRST,int SECOND,int THIRD,int FORTH,int FIVTH,double RateOfReturn){ //로또 최종 통계 출력 + int ResultMoney = FIRST*2000000000 + SECOND*30000000 + THIRD*1500000 + FORTH*50000 + FIVTH*5000; + System.out.println("당첨 통계"); + System.out.println("---"); + System.out.println("3개 일치 (5,000원) - "+FIVTH+"개"); + System.out.println("4개 일치 (50,000원) - "+FORTH+"개"); + System.out.println("5개 일치 (1,500,000원) - "+THIRD+"개"); + System.out.println("5개 일치, 보너스 볼 일치(30,000,000원) - "+SECOND+"개"); + System.out.println("6개 일치 (2,000,000,000원) - "+FIRST+"개"); + System.out.println("총 수익률은 "+RateOfReturn+"% 입니다"); + } + + public void OutLottoList(List MyRandomLottoList){ //랜덤으로 생성된 로또 출력 + for(List myList : MyRandomLottoList){ + System.out.println(myList); + } + } + } From 723b94dcb109564f0885d9351ac085f0d078bb20 Mon Sep 17 00:00:00 2001 From: ryansewook Date: Tue, 19 Mar 2024 18:15:53 +0900 Subject: [PATCH 8/8] Commit --- src/main/java/lotto/Controller/Start.java | 36 ++++----------------- src/main/java/lotto/Domain/LottoResult.java | 10 ++++++ src/main/java/lotto/Domain/RandomLotto.java | 17 ++++++++++ src/main/java/lotto/View/InOut.java | 5 ++- 4 files changed, 37 insertions(+), 31 deletions(-) diff --git a/src/main/java/lotto/Controller/Start.java b/src/main/java/lotto/Controller/Start.java index 6ebb5fb..1badfb6 100644 --- a/src/main/java/lotto/Controller/Start.java +++ b/src/main/java/lotto/Controller/Start.java @@ -20,49 +20,30 @@ public Start(){} public void run(){ InOut inOut = new InOut(); LottoResult lottoResult = new LottoResult(); + RandomLotto randomLotto = new RandomLotto(); int LottoAmount =inOut.InLottoMoney()/1000; //로또 개수 확인 - List myRandomLottoList = new ArrayList<>(); - myRandomLottoList = setRandomLottoList(LottoAmount); //LottoAmount 개의 랜덤 로또 번호 생성 + List myRandomLottoList = randomLotto.setRandomLottoList(LottoAmount); //LottoAmount 개의 랜덤 로또 번호 생성 - System.out.println(LottoAmount+"개를 구매하셨습니다"); - inOut.OutLottoList(myRandomLottoList); //랜덤으로 생성된 로또 출력 + inOut.OutLottoAmount(LottoAmount); //로또 개수 출력 + inOut.OutLottoList(myRandomLottoList); //랜덤으로 생성된 로또 출력 List WinningLotto = inOut.InWinningLotto(); //로또 당첨 번호 입력 int BonusNum = inOut.InBonusNum(); //보너스 번호 입력 for(List LottoList : myRandomLottoList){ //로또 당첨 결과 설정 - int Count = getResult(LottoList,WinningLotto); + int Count = lottoResult.getResult(LottoList,WinningLotto); setResult(Count,WinningLotto,BonusNum); } - double RateOfReturn = getRateOfReturn(getResultMoney(),LottoAmount*1000); //수익률 + double RateOfReturn = lottoResult.getRateOfReturn(getResultMoney(),LottoAmount*1000); //수익률 inOut.OutResultStatistics(FIRST,SECOND,THIRD,FORTH,FIVTH,RateOfReturn); //결과 출력 - } - - private static List setRandomLotto(){ //단일 로또 생성 - RandomLotto randomLotto = new RandomLotto(); - Lotto lotto = new Lotto(randomLotto.getRandomlotto()); - return lotto.getLotto(); - } - public static List setRandomLottoList(Integer Amount){ //Amount개의 로또 생성 - List RandomLottoList = new ArrayList<>(); - for(int i=0;i LottoList,List WinningLotto){ //개별 로또의 결과 확인 - LottoResult lottoResult = new LottoResult(); - return (int)lottoResult.getLottoResult(LottoList,WinningLotto); } private void setResult(Integer Count,List WinningLotto , Integer BonusNum){ //등수에 해당하는 로또 개수 업데이트 @@ -91,11 +72,6 @@ else if(lottoResult.getBounsResult(BonusNum,WinningLotto) == Boolean.FALSE) { } } - private double getRateOfReturn(double ResultMoney,double LottoMoney){ //수익률 계산 - double a = (ResultMoney/LottoMoney); - return Math.round(a*10.0)/10.0; - } - private double getResultMoney(){ return FIRST*2000000000 + SECOND*30000000 + THIRD*1500000 + FORTH*50000 + FIVTH*5000; } diff --git a/src/main/java/lotto/Domain/LottoResult.java b/src/main/java/lotto/Domain/LottoResult.java index e1849d1..366e789 100644 --- a/src/main/java/lotto/Domain/LottoResult.java +++ b/src/main/java/lotto/Domain/LottoResult.java @@ -15,4 +15,14 @@ public Boolean getBounsResult(Integer BounNum,List WinningLotto){ return WinningLotto.contains(BounNum); } + public double getRateOfReturn(double ResultMoney,double LottoMoney){ //수익률 계산 + double a = (ResultMoney/LottoMoney)*100; + return Math.round(a*10.0)/10.0; + } + + public Integer getResult(List LottoList,List WinningLotto){ //개별 로또의 결과 확인 + LottoResult lottoResult = new LottoResult(); + return (int)lottoResult.getLottoResult(LottoList,WinningLotto); + } + } diff --git a/src/main/java/lotto/Domain/RandomLotto.java b/src/main/java/lotto/Domain/RandomLotto.java index 95e511c..734507d 100644 --- a/src/main/java/lotto/Domain/RandomLotto.java +++ b/src/main/java/lotto/Domain/RandomLotto.java @@ -2,6 +2,8 @@ import camp.nextstep.edu.missionutils.Randoms; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class RandomLotto { @@ -10,4 +12,19 @@ public RandomLotto(){} public List getRandomlotto(){ return Randoms.pickUniqueNumbersInRange(1,45,6); } + + public static List setRandomLotto(){ //단일 로또 생성 + RandomLotto randomLotto = new RandomLotto(); + Lotto lotto = new Lotto(randomLotto.getRandomlotto()); + return lotto.getLotto(); + } + + public static List setRandomLottoList(Integer Amount){ //Amount개의 로또 생성 + List RandomLottoList = new ArrayList<>(); + for(int i=0;i MyRandomLottoList){ //랜덤으로 생성된 } } + public void OutLottoAmount(int LottoAmount){ + System.out.println(LottoAmount+"개를 구매하셨습니다"); + } + }