You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환 (예: “” => 0, "1,2" => 3, "1,2,3" => 6, “1,2:3” => 6)
앞의 기본 구분자(쉼표, 콜론)외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 “//”와 “\n” 사이에 위치하는 문자를 커스텀 구분자로 사용한다. 예를 들어 “//;\n1;2;3”과 같이 값을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다.
문자열 계산기에 숫자 이외의 값 또는 음수를 전달하는 경우 RuntimeException 예외를 throw한다.
프로그래밍 요구사항
indent(들여쓰기) depth를 2단계에서 1단계로 줄여라.
depth의 경우 if문을 사용하는 경우 1단계의 depth가 증가한다. if문 안에 while문을 사용한다면 depth가 2단계가 된다.
메소드의 크기가 최대 10라인을 넘지 않도록 구현한다.
method가 한 가지 일만 하도록 최대한 작게 만들어라.
else를 사용하지 마라.
구현할 기능
지정된 구분자(',', ':') 를 가지는 문자열이 입력되면, 적절하게 분리한다.
커스텀 구분자("//", "\n" 사이의 문자) 를 추출한다.
빈 문자열, Null 이 입력되면 0을 반환한다.
숫자 이외의 값, 음수는 예외 처리한다(RuntimeException).
숫자를 분리한 후에는 합을 계산한 뒤 반환한다.
2단계
기능 요구사항
로또 구입 금액을 입력하면 구입 금액에 해당하는 로또를 발급해야 한다.
로또 1장의 가격은 1000원이다.
프로그래밍 요구사항
모든 기능을 TDD로 구현해 단위 테스트가 존재해야 한다. 단, UI(System.out, System.in) 로직은 제외
핵심 로직을 구현하는 코드와 UI를 담당하는 로직을 구분한다.
이하 내용은 자동차 경주 미션과 유사
구현할 기능
입력
사용할 금액을 입력받는다.
당첨 번호를 입력받는다. 각 번호는 쉼표(',')로 구분한다.
대화형 입력
출력
발급된 로또를 한 줄 씩 출력한다.
형식은 대괄호 안에 번호를 쉼표로 구분하여 출력한다.
당첨 통계를 출력한다.
구입 금액 대비 당첨 금액을 비교하여 총 수익률을 출력한다.
로또
금액만큼 로또 번호를 임의로 생성한다.
입력된 당첨 번호를 발급된 로또 번호와 비교한다.
비교 후, 통계를 생성한다.
3단계
2단계에서 미비했던 점
로또 클래스의 검증 기능의 부재
기능 요구사항
2등을 위해 추가 번호를 하나 더 추첨한다.
당첨 통계에 2등도 추가해야 한다.
구현할 기능
입력
보너스 번호를 입력받는다.
로또
보너스 번호를 포함한 수상 알고리즘 구현
로또 클래스 검증 기능 추가
출력
5개 + 보너스 볼이 일치하는 경우도 출력
4단계
기능 요구사항
현재 로또 생성기는 자동 생성 기능만 제공한다. 사용자가 수동으로 추첨 번호를 입력할 수 있도록 해야 한다.