Skip to content

NEXTSTEP 엔터프라이즈 Pro 과정을 위한 저장소

Notifications You must be signed in to change notification settings

jennie267/java-lotto-pro

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

로또

진행 방법

  • 로또 요구사항을 파악한다.
  • 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 코드 리뷰 요청을 한다.
  • 코드 리뷰 피드백에 대한 개선 작업을 하고 다시 PUSH한다.
  • 모든 피드백을 완료하면 다음 단계를 도전하고 앞의 과정을 반복한다.

온라인 코드 리뷰 과정

2단계 - 문자열 덧셈 계산기

기능요구사항

  • 쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환 (예: “” => 0, "1,2" => 3, "1,2,3" => 6, “1,2:3” => 6)
  • 앞의 기본 구분자(쉼표, 콜론)외에 커스텀 구분자를 지정할 수 있다.
  • 커스텀 구분자는 문자열 앞부분의 “//”와 “\n” 사이에 위치하는 문자를 커스텀 구분자로 사용한다.
    • 예를 들어 “//;\n1;2;3”과 같이 값을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다.
  • 문자열 계산기에 숫자 이외의 값 또는 음수를 전달하는 경우 RuntimeException 예외를 throw한다.

기능 목록

  • 입력한 문자열을 체크한다
  • 빈 문자열 또는 null일때 0을 반환해야한다
  • 숫자 하나를 문자열로 입력한 경우 해당 숫자를 반환한다
  • 숫자 이외의 값 또는 음수를 입력받으면 RuntimeException 예외를 throw한다
  • 기본 구분자(쉼표(,)나 콜론(:)) 구분자로 문자열을 분리한다
  • 기본 구분자로 분리한 문자열을 더해서 반환한다
  • 커스텀 구분자로 문자열을 분리한다
  • 커스텀 구분자로분리한 문자열을 더해서 반환한다

3단계 - 로또(자동)

기능요구사항

  • 로또 구입 금액을 입력하면 구입 금액에 해당하는 로또를 발급해야 한다.
  • 로또 1장의 가격은 1000원이다.

힌트

  • 로또 자동 생성은 Collections.shuffle() 메소드 활용한다.
  • Collections.sort() 메소드를 활용해 정렬 가능하다.
  • ArrayList의 contains() 메소드를 활용하면 어떤 값이 존재하는지 유무를 판단할 수 있다.

기능 목록

  • 구매금액을 입력받는다

    • 구입금액을 입력해 주세요. 메시지 출력
  • 로또번호를 중복없는 6자리 숫자로 랜덤 생성한다

  • 구매가능한 금액만큼 로또를 여러장 구매한다

    • 몇장을 살 수 있는지 확인
  • 구매한 로또번호를 출력한다

  • 지난주 당첨번호를 입력받는다 (총 6개)

    • 지난 주 당첨 번호 입력 메시지
  • 얼마나 당첨됐는지 카운트한다

    • 3개 일치 5000원
    • 4개 일치 50000원
    • 5개 일치 1500000원
    • 6개 일치 2000000000원
  • 당첨 통계를 출력한다

  • 수익률을 계산한다

4단계 - 로또(2등)

기능요구사항

  • 2등을 위해 추가 번호를 하나 더 추첨한다.
  • 당첨 통계에 2등도 추가해야 한다.

기능 목록

  • 예외처리를 한다

    • 입력받은 구매금액이 숫자가 맞는지 확인
    • 입력받은 구매금액이 최소금액 이하일 경우 확인
    • 입력받은 지난주 당첨번호에 중복 번호가 있는지 확인
    • 입력받은 지난주 당첨번호에 45가 넘어가는 번호가 있는지 확인
    • 입력받은 지난주 당첨번호가 6자리인지 확인
  • 보너스 볼을 입력받는다

    • 보너스 볼이 지난주 당첨 번호와 중복되는지 확인
    • 보너스 볼이 45가 넘어가는지 있는지 확인
  • 당첨 통계에 보너스볼 (2등)도 추가한다

    • 당첨 통계 출력에 추가
    • 수익률 계산 로직에 추가

5단계 - 로또(수동)

기능요구사항

  • 현재 로또 생성기는 자동 생성 기능만 제공한다. 사용자가 수동으로 추첨 번호를 입력할 수 있도록 해야 한다.
  • 입력한 금액, 자동 생성 숫자, 수동 생성 번호를 입력하도록 해야 한다.

기능 목록

  • 수동으로 구매할 로또 수를 입력받는다
    • 구매금액을 초과하지 않는지 확인
  • 수동으로 구매할 번호를 입력받는다
    • 수동번호에 중복 번호가 있는지 확인
    • 수동번호에 45가 넘어가는 번호가 있는지 확인
    • 수동번호가 6자리인지 확인
    • 구매할 로또 수만큼 입력했는지 확인
  • 수동, 자동 구매 개수 출력
  • 수동로또 생성
  • 수동, 자동 로또 목록 출력
  • 당첨 통계 재계산

출력

구입금액을 입력해 주세요.
14000

수동으로 구매할 로또 수를 입력해 주세요.
3

수동으로 구매할 번호를 입력해 주세요.
8, 21, 23, 41, 42, 43
3, 5, 11, 16, 32, 38
7, 11, 16, 35, 36, 44

수동으로 3장, 자동으로 11개를 구매했습니다.
[8, 21, 23, 41, 42, 43]
[3, 5, 11, 16, 32, 38]
[7, 11, 16, 35, 36, 44]
[1, 8, 11, 31, 41, 42]
[13, 14, 16, 38, 42, 45]
[7, 11, 30, 40, 42, 43]
[2, 13, 22, 32, 38, 45]
[23, 25, 33, 36, 39, 41]
[1, 3, 5, 14, 22, 45]
[5, 9, 38, 41, 43, 44]
[2, 8, 9, 18, 19, 21]
[13, 14, 18, 21, 23, 35]
[17, 21, 29, 37, 42, 45]
[3, 8, 27, 30, 35, 44]

지난 주 당첨 번호를 입력해 주세요.
1, 2, 3, 4, 5, 6
보너스 볼을 입력해 주세요.
7

당첨 통계
---------
3개 일치 (5000원)- 1개
4개 일치 (50000원)- 0개
5개 일치 (1500000원)- 0개
5개 일치, 보너스 볼 일치(30000000원) - 0개
6개 일치 (2000000000원)- 0개
총 수익률은 0.35입니다.(기준이 1이기 때문에 결과적으로 손해라는 의미임)

About

NEXTSTEP 엔터프라이즈 Pro 과정을 위한 저장소

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published