Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sy step2 #3

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open

Sy step2 #3

wants to merge 5 commits into from

Conversation

izayaki22
Copy link
Contributor

No description provided.

- 사용자가 입력하기 때문에 Input class에 getBonusNumber 메서드 추가
- 당첨번호가 5개인 로또들을 찾아 보너스 볼이 포함되어 있는지 확인한 후, 2등 당첨 개수를 반환
- bonusMatch가 MATCH, NOTMATCH인지에 따라 실행되는 run 함수가 다름
- 사용자가 입력하는 보너스 볼을 입력 받아 반환하는 메서드
- printWinStatistics 메서드의 인수에 count2ndLotto를 추가해 2등에 당첨된 개수도 출력
- printWinStatistics 메서드의 인수에 count2ndLotto를 추가해 2등에 당첨된 개수도 출력
Copy link
Member

@VSFe VSFe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

이제 설계적인 고민을 훨씬 많이 하시며 코드를 작성한 느낌이 들어요!
다만, 역할이 다르다면 과감하게 파일을 분리할 필요가 있어요.
최대한 잘게 쪼개는 연습을 해보세요~

DecimalFormat df = new DecimalFormat("#.##");
df.setRoundingMode(RoundingMode.DOWN);
return Double.parseDouble(df.format(((totalMoney - buyAmount) / buyAmount * 100)));
}

enum BonusMatch {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

파일이 너무 길어지니, Enum은 분리하는게 좋을 것 같아요.

},
MATCH(true){
@Override
int run(ArrayList<Integer> lottoResults) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Enum 안에 기능을 넣는 것 보단, Enum을 받아서 처리하는 외부 메서드를 만들어서 관리하는게 더 좋을 것 같아요.
Enum은 쉽게 꺼내쓸 수 있는 이름표 정도로 생각하는게 의미론적 관점에서 더 좋습니다.

@@ -65,8 +83,8 @@ public static ArrayList<Integer> countResults(ArrayList<Integer> winList, ArrayL

public static int countMatchedNumbers(ArrayList<Integer> winList, ArrayList<Integer> lotto) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그냥 long으로 처리해도 되지 않을까요?

@@ -52,6 +56,20 @@ public static ArrayList<Integer> winNumbers(String winNumbers) {
return winArrayList;
}

public static int find2ndLotto(ArrayList<ArrayList<Integer>> lotto, ArrayList<Integer> countedList, ArrayList<Integer> lottoResults, int bonusNumber) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2등 로또 당첨은, 그냥
(전체 로또를 순회하면서)
(숫자가 겹치는지 확인)
(만약에 보너스 숫자가 일치하면 flag를 true로 변경)
(겹치는 숫자의 수와 flag 확인)
이 더 자연스러울 것 같아요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants