소개
오랜 전투 끝에 수수께끼의 경쟁에서 스핑크스를 물리 쳤습니다. 당신의 기술에 깊은 스핑크스는 당신에게 당신의 영리함에 상응하는 보상을주기를 원하며, 숫자가 들어있는 8 개의 상자로 나누어 진 마법의 양피지가 존재하게합니다.
스핑크스는 "양피지를 만들어 상자가 겹치도록하고 상자는 덧셈이나 곱셈을 통해 합쳐질 것"이라고 말했다.
직무
목록 / 배열 / 8 개의 자연수를 입력으로 사용하고 일련의 '주름'연산을 통해 얻을 수있는 최대 보상을 반환 / 인쇄하는 프로그램 또는 함수를 작성해야합니다.
역학
'크림'연산은 일부 셀 수에서 +
또는 *
연산자로 수행됩니다. 목록의 처음 n 개 셀은 연산자를 사용하여 대상 셀에 접 히고 병합됩니다. 병합 작업에서 소비되지 않은 셀은 수정되지 않은 상태로 남아 있습니다.
다음은 n = 3 셀을 사용한 주름의 예입니다.
추가를 사용하면 다음과 같은 결과가 발생합니다.
또는 곱셈, 결과는 다음과 같습니다.
참고 : 단순화를 위해 목록 길이보다 크거나 같은 여러 셀을 사용하여 주름을 잡는 것처럼 1 개 미만의 셀을 사용하여 주름을 잡을 수 없습니다. 그러나 목록은 셀 수의 절반 이상으로 늘어날 수 있습니다.
8 개의 셀 목록을 5로 구할 수 있으므로 길이 5의 새 목록
이 생성 됩니다. 연산자를 [0,1,2,3,4,5,6,7]
사용하여 5 개의 셀로 구부 립니다.+
[9,9,9,1,0]
채점
표준 코드 골프 규칙-올바른 출력을 생성하고 가장 적은 바이트 수를 갖는 코드입니다.
보너스 : 코드에서 주름 작업 순서를 반환 / 인쇄하여 최대 보상을 얻는 경우 점수에 0.8을 곱하십시오. 출력 예는 다음과 같습니다.
crease 5 +
crease 2 *
crease 2 +
crease 1 *
예
다음과 같은 형식으로 이러한 입력 및 결과를 사용하여 코드를 테스트하십시오 input - maximum reward
.
[0, 1, 2, 3, 4, 5, 6, 7] - 7560
[0, 9, 0, 3, 2, 6, 1, 5] - 1944
[0, 1, 0, 3, 0, 2, 0, 4] - 36
[6, 0, 9, 1, 9, 0, 7, 3] - 11907
[0, 5, 2, 0, 1, 3, 8, 8] - 2560