(이것은 나의 첫 번째 코드 골프 질문입니다)
제가 어렸을 때, 아빠와 저는 자동차에서 볼 수있는 번호판이 간단한 규칙에 따라 특정 포인트를 줄 수있는 게임을 발명했습니다.
동일한 문자 또는 숫자의 X 금액은 X-1 포인트를 제공합니다.
22 = 1 point
aa = 1 point
5555 = 3 points
숫자는 서로 옆에 있어야하므로 3353
5는 3의 시퀀스를 나누기 때문에 1 점만 제공합니다.
최소 3의 오름차순 또는 내림차순으로 X 번호 시퀀스는 X 포인트를 제공합니다. 예 :
123 = 3 points
9753 = 4 points
147 = 3 points
포인트 시스템은 1 자리 숫자에 대해서만 작동하므로 1919
포인트를 제공하지 않으며 14710
3, (147) 만 제공합니다.
더 많은 포인트를 만들기 위해 시퀀스를 결합 할 수 있습니다 (예 :
1135 = 4 points (1 point for 11 and 3 points for 135)
34543 = 6 points (3 points for 345 and 3 points for 543)
그러나 추가 포인트를 위해 더 큰 시퀀스를 2 개의 더 작은 시퀀스로자를 수 1234 = 123, 234 (6 points)
없습니다. 허용되지 않습니다.
번호판이 부여하는 포인트 수를 결정하기 위해 일련의 작업이 수행됩니다.
덴마크에서는 번호판이 다음과 같이 구성되어 있습니다. CC II III. 여기서 C는 문자이고 I은 정수이므로 입력 예제는이 구조를 반영합니다. 원하는 경우 시퀀스를 자신의 구조에 맞게 만들거나 실제로 모험을 느끼는 경우 프로그램에서 번호판의 구조를 분석하여 전 세계 모든 유형의 번호판에서 작동하게하십시오. 대답에 사용하기로 결정한 구조를 명시하십시오.
원하는 방식으로 입력을 취할 수 있습니다. 문자열이나 배열이 가장 의미가있는 것 같습니다.
테스트 입력 | 산출:
AA 11 111 | 5
AB 15 436 | 3
OJ 82 645 | 0
UI 65 456 | 6
HH 45 670 | 5
YH 00 244 | 5
AJ 00 754 | 1
자신의 구조를 선택하거나 모든 구조를 다루는 특성으로 인해 반드시 승자가 명확하게 결정되는 방법을 볼 필요는 없습니다. 우승자가 결정한 구조에서 가장 짧은 바이트가 될 것이라고 생각합니다. (그리고 CICIC과 같은 입력을 취하지 마십시오.
편집하다:
의견 요청으로 인해 공유 할 정보가 몇 가지 더 있습니다. 오름차순 또는 내림차순의 숫자는 산술 순서를 나타내므로 X +/- a * 0, X +/- a * 1, ... X +/- a * n 등. 예를 들어 3-5-7은 3 + 2 * 0, 3 + 2 * 1, 3 + 2 * 2입니다. 그러나 시퀀스는 0에서 시작하거나 끝나지 않아도됩니다. 0.
더 많은 편집 :
원하는 방식으로 입력을 제공 할 수 있습니다. 공백, 대시 또는 기타 번호판을 더 읽기 쉽게 만드는 것은 입력 할 필요가 없습니다. 대문자 나 그와 비슷한 것을 받아들임으로써 바이트를 절약 할 수 있다면 그렇게 할 수 있습니다. 유일한 요구 사항은 프로그램이 문자와 숫자를 모두 포함하는 문자열 / 배열 / 모든 것을 취할 수 있고 명시된 규칙에 따라 올바른 양의 포인트를 출력 할 수 있다는 것입니다.
XX 87 654
. 나는 당신의 모든 테스트 케이스에는 맞지만 이것에 대해서는 틀린 것을 생각해 냈습니다. 그것을 고치기 위해 노력하고 있습니다.
CCIIIII
공백 없음). 그렇지 않으면이 문제에는 객관적인 승리 기준이 부족합니다. "(CICIC과 같은 입력을받지 말고 쉽게 만들 수 있습니다)"는 매우 주관적입니다. 허용되는 구조 란 무엇입니까?
IA99999
(감소하는 코드 포인트 시퀀스를 포함하지만 숫자는 포함하지 않습니다).