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

[κΉ€μ˜μ„œ] πŸš€ 2단계 - 둜또(μˆ˜λ™) #3796

Open
wants to merge 19 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
b2121f7
docs: κΈ°λŠ₯ λͺ©λ‘ μž‘μ„±
dudtjakdl Jun 16, 2024
3007395
feat: LottoTicket 둜또 티켓이 숫자λ₯Ό 6개 κ°€μ§€λŠ” κΈ°λŠ₯ μΆ”κ°€
dudtjakdl Jun 16, 2024
6c233f1
feat: LottoNumber 둜또 ν‹°μΌ“μ˜ 숫자 λ²”μœ„ μ œν•œ κΈ°λŠ₯ μΆ”κ°€
dudtjakdl Jun 16, 2024
e64934d
refactor: LottoTicket 의 List<LottoNumber> -> Set<LottoNumber> 둜 λ³€ν™˜
dudtjakdl Jun 16, 2024
198e4be
feat: ν‹°μΌ“ 수λ₯Ό μž…λ ₯ν•˜λ©΄ μž…λ ₯ν•œ 수만큼 μžλ™ λ‘œλ„ 티켓을 μƒμ„±ν•˜λŠ” κΈ°λŠ₯ μΆ”κ°€
dudtjakdl Jun 16, 2024
2241c44
fix: κ΅¬μž… κΈˆμ•‘μ„ μž…λ ₯ν•˜λ©΄ μžλ™ 둜또 티켓을 μƒμ„±ν•˜λ„λ‘ κΈ°λŠ₯ μˆ˜μ •
dudtjakdl Jun 16, 2024
39b6586
fear: View, Controller, LottoTicketBundle κ΅¬ν˜„
dudtjakdl Jun 16, 2024
eec46a8
feat: λ‹Ήμ²¨λ²ˆν˜Έ, λ³΄λ„ˆμŠ€λ³Ό μž…λ ₯ inputView μΆ”κ°€
dudtjakdl Jun 23, 2024
702abda
feat: LottRank enum 클래슀 μΆ”κ°€, match κΈ°λŠ₯ μΆ”κ°€
dudtjakdl Jun 23, 2024
a49cbc3
feat: LottoResult (당첨 톡계) μΆ”κ°€
dudtjakdl Jun 23, 2024
98111fb
feat: 당첨 번호 숫자 + λ³΄λ„ˆμŠ€λ³Ό 숫자 일치 개수 λ°˜ν™˜ κΈ°λŠ₯ μΆ”κ°€
dudtjakdl Jun 23, 2024
7f81e10
feat: 수읡λ₯  계산 κΈ°λŠ₯ μΆ”κ°€
dudtjakdl Jun 23, 2024
5cb34b9
feat: 둜또 톡계 좜λ ₯ κΈ°λŠ₯ μΆ”κ°€
dudtjakdl Jun 23, 2024
597f537
feat: λ³΄λ„ˆμŠ€λ³Ό 체크 둜직 μΆ”κ°€
dudtjakdl Jun 23, 2024
5b1663d
refactor: 클래슀 이름 λ³€κ²½
dudtjakdl Jun 23, 2024
3379e7b
refactor: inputView λ¦¬νŒ©ν† λ§
dudtjakdl Jun 23, 2024
a8dc6ae
fix: 둜또 λ“±μˆ˜ 계산 둜직 μˆ˜μ •, 수읡λ₯  계산 둜직 μˆ˜μ •
dudtjakdl Jun 23, 2024
238069e
fix: λ‚™μ λœ κ²½μš°λŠ” 당첨 ν†΅κ³„μ—μ„œ 좜λ ₯ν•˜μ§€ μ•Šλ„λ‘ μˆ˜μ •
dudtjakdl Jun 23, 2024
f60c7ff
refactor: LottoController, LottoService λ¦¬νŒ©ν† λ§
dudtjakdl Jun 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: ν‹°μΌ“ 수λ₯Ό μž…λ ₯ν•˜λ©΄ μž…λ ₯ν•œ 수만큼 μžλ™ λ‘œλ„ 티켓을 μƒμ„±ν•˜λŠ” κΈ°λŠ₯ μΆ”κ°€
dudtjakdl committed Jun 16, 2024
commit 198e4be602707d508cfc38566825fec1eb9c50c5
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@
## κΈ°λŠ₯ λͺ©λ‘
- [x] 둜또 티켓은 숫자λ₯Ό 6개 κ°€μ§ˆ 수 μžˆλ‹€.
- [x] 둜또 티켓에 λ“€μ–΄κ°€λŠ” 둜또 μˆ«μžλŠ” 1 이상 45 μ΄ν•˜μ˜ μˆ«μžλ‹€.
- [ ] ν‹°μΌ“ 수λ₯Ό μž…λ ₯ν•˜λ©΄ μž…λ ₯ν•œ 수만큼 μžλ™ 둜또 티켓이 κ΅¬λ§€λœλ‹€.
- [x] ν‹°μΌ“ 수λ₯Ό μž…λ ₯ν•˜λ©΄ μž…λ ₯ν•œ 수만큼 μžλ™ 둜또 티켓이 κ΅¬λ§€λœλ‹€.
- [ ] κ΅¬μž…κΈˆμ•‘κ³Ό μˆ˜λ™μœΌλ‘œ ꡬ맀할 ν‹°μΌ“ 수λ₯Ό μž…λ ₯ν•˜λ©΄ 남은 κΈˆμ•‘λ§ŒνΌ μžλ™ ꡬ맀 ν‹°μΌ“ μˆ˜κ°€ κ²°μ •λœλ‹€.
- [ ] 당첨 번호 6개λ₯Ό μž…λ ₯ν•˜λ©΄ 둜또 티켓에 μˆ«μžκ°€ λͺ‡κ°œ μΌμΉ˜ν•˜λŠ”μ§€ λ°˜ν™˜ν•œλ‹€.
- [ ] 당첨 번호 6κ°œμ™€ λ³΄λ„ˆμŠ€ 볼을 μž…λ ₯ν•˜λ©΄ μˆ«μžκ°€ λͺ‡κ°œ μΌμΉ˜ν•˜λŠ”μ§€μ™€ λ³΄λ„ˆμŠ€ λ³Ό 일치 μ—¬λΆ€λ₯Ό λ°˜ν™˜ν•œλ‹€.
23 changes: 23 additions & 0 deletions src/main/java/lotto/model/LottoNumber.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package lotto.model;

public class LottoNumber {
public static final int LOTTO_NUBER_MIN = 1;
public static final int LOTTO_NUBER_MAX = 45;
private final int number;

public LottoNumber(int number) {
if (number < LOTTO_NUBER_MIN || number > LOTTO_NUBER_MAX) {
throw new IllegalArgumentException("둜또 μˆ«μžλŠ” 1 이상 45 μ΄ν•˜μ˜ μˆ«μžμ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.");
}
this.number = number;
}

public static LottoNumber of(int number) {
return new LottoNumber(number);
}

@Override
public String toString() {
return String.valueOf(number);
}
}
27 changes: 27 additions & 0 deletions src/main/java/lotto/model/LottoTicketMaker.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package lotto.model;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class LottoTicketMaker {
public static List<LottoTicket> purchase(int ticketCount) {
return IntStream.range(0, ticketCount)
.mapToObj(i -> new LottoTicket(generateRandomNumbers()))
.collect(Collectors.toList());
}

private static List<Integer> generateRandomNumbers() {
return IntStream.rangeClosed(LottoNumber.LOTTO_NUBER_MIN, LottoNumber.LOTTO_NUBER_MAX)
.boxed()
.collect(Collectors.collectingAndThen(
Collectors.toList(),
list -> {
Collections.shuffle(list, new Random());
return list.stream().limit(LottoTicket.LOTTO_NUBERS_SIZE).collect(Collectors.toList());
}));
}
}
19 changes: 19 additions & 0 deletions src/test/java/lotto/model/LottoTicketMakerTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package lotto.model;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

import java.util.List;

class LottoTicketMakerTest {
@Test
@DisplayName("ν‹°μΌ“ 수λ₯Ό μž…λ ₯ν•˜λ©΄ μž…λ ₯ν•œ 수만큼 μžλ™ 둜또 티켓이 κ΅¬λ§€λœλ‹€.")
void test1() {
List<LottoTicket> lottoTickets = LottoTicketMaker.purchase(100);
assertThat(lottoTickets).hasSize(100);
}

}