포커는 토너먼트에서 종종 시행되는 칩 배치 방법에 대한 예의를 지니고 있습니다. 칩은 상대방보다 뒤쳐져 서 상대방으로부터 "숨겨지지"않을 수 있습니다. 대부분 큰 명칭 칩을 숨기지 않습니다.
도전
우리는 ASCII로 포커를 할 것이므로 ASCII 칩 스택 배열의 총 값을 그릴 함수 또는 프로그램을 작성해야합니다 n
.
입력
-양의 정수 n
(최대 2**32-1
처리해야 함)
출력
-아래에 정의 된 스택 배열의 ASCII 표현입니다.
여기에는 각 줄의 오른쪽에 공백이 포함될 수 있으므로 가장 긴 (맨 아래) 줄의 인쇄 가능한 문자가 사용하는 길이보다 한 줄을 넘지 않아야합니다.
여기에는 단일 줄 바꿈 줄이 포함될 수 있습니다. 그리고
당신이 원하는 경우 칩을 나타내는 문자는 소문자로 할 수있다.
스택 배열은 다음과 같습니다.
- 교단을 고려할 때 가능한 가장 적은 칩을 포함하십시오 (아래 참조).
- "스택"(열)에 동일한 가치의 칩이 있습니다.
- 더 짧은 스택이 더 큰 스택의 오른쪽에 오도록 주문하십시오. 과
- 더 큰 명칭의 칩이있는 스택이 동일한 크기의 낮은 명칭의 스택 오른쪽에 오도록 주문하십시오 (오른쪽의 상대방이 볼 수 있음을 나타냅니다)
칩 자체는 색상을 식별하는 개별 문자로 표시되어야합니다.
White : 1 = W
Red : 5 = R
Green : 25 = G
Black : 100 = B
Yellow : 500 = Y
Pink : 1K = P
Orange : 5K = O
Cyan : 25K = C
Magenta : 100K = M
Aqua-blue : 500K = A
Lavender : 1M = L
Indigo : 5M = I
Turquoise : 25M = T
Violet : 100M = V
Silver : 500M = S
예
대한 n = 276,352
칩의 가장 작은 수는 다음과 같습니다
2 * 100K + 3 * 25K + 1 * 1K + 3 * 100 + 2 * 25 + 2 * 1
MM CCC P BBB GG WW
싱글이 P
(가) 오른쪽에 가야
다음 크기의 3 스택은 2
다음에 가야한다,
-하지만이 MM
에 의해 다음 오른쪽으로 멀리 이동해야한다 GG
다음과 WW
이후 100K > 25 > 1
다음 크기의 두 스택 3
왼쪽에 이동,
-하지만 CCC
필수 BBB
이후 오른쪽으로 이동25K > 100
이제이 칩을 실제 스택에 배치하여 출력을 만들어야합니다.
BC
BCWGM
BCWGMP
테스트 사례
Input:
1
Output:
W
Input:
9378278
Output:
L
LWGPCM
LWGPCMB
LWGPCMBI
Input:
22222222
Output:
ROI
ROI
ROIWBPML
ROIWBPML
Input:
1342185143
Output:
WRCIV
WRCIVOLS
WRCIVOLSGBMT
Input:
2147483647
Output:
RMIS
RMISPC
RMISPCWL
RMISPCWLGBYOTV
Input:
4294967295
Output:
S
S
S
S
SRML
SRMLGOIT
SRMLGOITBPCV
SRMLGOITBPCVA
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다. 허점은없고, 야다 야다, 당신은 훈련을 알고 있습니다.
2**31-1
, 아니면 대부분의 부호있는 int
유형 보다 더 큰 의도 입니까?
2**32-1
테스트 사례는 있지만 기꺼이 낮추겠습니다. (흥미로운 사실 : PokerStars는 25B
이미지 폴더에 칩을 가지고 있습니다.)