몇 달 전에 저는이 질문을 면접을위한 사전 심사 퍼즐로 사용했습니다. 최근 블로그 자료에 대해 생각할 때 기능적으로 문제를 해결하는 데 사용하기에 좋은 예가되었습니다. 내 블로그 게시물 작성을 마치 자마자 이에 대한 솔루션을 게시하겠습니다.
참고 : 이 질문은 1 년 전 StackOverflow에서 질문되었으며 몇 가지 (부정확 한) 답변 후 하향 투표되었습니다. 나는 그것이 명백한 면접이나 숙제 질문으로 다운 투표되었다고 가정합니다. 여기에 우리의 대답은 누군가가 그것들을 사용하는 것에 대해 생각할 수 없을 정도로 깊게 코드 골프되어야합니다!
레이스에서는 다음 전략을 사용합니다. 베팅을 잃을 때마다 다음 라운드에 대한 베팅 가치가 두 배가됩니다. 당신이 이길 때마다 다음 라운드에 대한 내기는 1 달러가 될 것입니다. 1 달러를 베팅하여 라운드를 시작합니다.
예를 들어, 20 달러로 시작하여 첫 번째 라운드에서 베팅에서 이기고 다음 두 라운드에서 베팅을 잃은 후 네 번째 라운드에서 내기면 20 + 1-1-2로 끝납니다. +4 = 22 달러
g
두 개의 인수를 사용 하는 함수를 완료해야합니다 .
- 첫 번째 인수는 정수
a
이며, 우리가 베팅을 시작할 때 우리가 처음 지불하는 금액입니다. - 두 번째 인수는 문자열
r
입니다. 결과의 i 번째 특성은 i 번째 라운드의 결과를 나타내는 'W'(승리) 또는 'L'(손실)입니다.
당신의 함수는 모든 라운드가 플레이 된 후에 가질 금액을 반환해야합니다.
어떤 시점에서 내기의 가치를 충당하기에 충분한 돈이 계정에 없으면 그 시점에 가지고있는 금액을 중지하고 반환해야합니다.
샘플 런
1st round - Loss: 15-1 = 14
2nd round - Loss: 14-2 = 12 (Bet doubles)
3rd round - Loss: 12-4 = 8
4th round - Win: 8 + 8 = 16
5th round - Loss:16-1 = 15 (Since the previous bet was a win, this bet has a value of 1 dollar)
6th round - Loss: 15-2 = 13
7th round - Loss: 13-4 = 9
8th round - Loss: 9-8 = 1
1
이 경우 함수는 반환
승자는 내재 된 함수 정의의 최소 문자 수에 의해 결정됩니다. 원하는 경우 언어별로 협력하십시오. 나는 내 것이 향상 될 수 있다는 것을 안다!