Til Home

2020-07-01-TIL

Fact

  • 오늘 소수 만들기괄호 변환을 풀었다. 괄호 변환 처음 풀때 생각 나는대로 풀었는데 많이 통과가 안됬다. 그래서 이번엔 거기에서 시키는 대로 코드를 작성 했더니 쉽게 풀었다. 소수 만들기는 combination을 구현해서 문제를 통과하는거였다. 이왕 combination 쓰는거 다용도 로 쓸 수 있는 combination을 작성 할려고 했으나 이것을 쓰고 통과 시킬려고 했을때 시간 초과 떴다. 그래서 인터넷에 떠돌던 combination을 써서 통과 시켰다.
  • 문제들을 푼 후에 다시 java 로 lotto 게임을 만들었다. TDD를 연습하기 위해서 짜고 있던것을 다시 지워서 처음 부터 다시 시작했다.

Feelings

  • combination 만드는거 너무 어려운것 같다.
  • java 로또 만들때…

일단 하드 코딩으로 통과 시킨다.

제일 중요한건 뭐냐 결국엔 원하는건 수익률인가????

그럼 일단 수익률 구하기 위해서 다른것들을 하드 코딩 한다.

하드 코딩 목록 구입금액 로또 티켓 지난주 당첨 번호 당첨 통계

아냐 요구 하는 결과 예제 화면과 똑깉이 나올 수 있도록 하드코딩부터 한다.

하드 코딩 했다.

이제 이 게임에서 제일 중요하다고 생각 되는것은 결국엔 마지막에 손해 봤나 아니면 이득 봤냐 인 것 같다. 그러므로 이익 봤는지 아니면 안봤는지 계산해서 돌려준다.

그러므로 수익률을 구해주기 위해서 다른것을 다 하드 코딩한다.

다음은 뭘 할까.

수익률을 얻기 위해서 임시로 구입금액이랑 당첨 통계를 만들었다.

그럼 구입 금액을 하드 코딩이 아닌 내가 입력하는 식으로 바꿔 보자.

그 후에 당첨 통계를 만들어 보자.

단계로 했다. 맞는지 모르겠다.

  • 이런 방식으로 하는게 맞는지 모르겠다. 어플리케이션의 제일 중요한것 부터 작성을 하고 나머지 하드 코딩을 한다는데 이게 사람마다 “제일 중요한” 이 다를 수 있으므로 너무 애매하다.

Findings

  • 이진수로 바꾸는 작업 toString(2)를 해보니 코드 처리 시간이 11배로 뛴다. 거기에 split을 하니 1.3배로 뛴다. 거기에 filter을 하니 2.5배 올라간다.

Future Action

  • TDD 덕분에 코드 설계 접근 방식에 대한 고민을 엄청 많이 하게 된다. 더 고민 해보자.