StickStack은 매우 간단한 스택 기반 프로그래밍 언어로 두 가지 명령 만 있습니다.
|
스택의 길이를 스택으로 푸시-
스택에서 맨 위 두 요소를 튀어 나와 그 차이를 되돌립니다 (second topmost - topmost
)
언어 세부 사항
- 프로그램 시작시 스택이 비어 있습니다.
- 모든 명령어는 왼쪽에서 오른쪽으로 순차적으로 실행됩니다.
- 스택에 2 개 미만의 숫자가 있으면이
-
명령은 잘못된 것입니다. - 실행이 끝나면 스택에는 정확히 하나의 숫자 가 포함되어야합니다 .
모든 정수는 StickStack 프로그램에 의해 생성 될 수 있습니다. 예를 들면 다음과 같습니다.
|||--||-- generates the number 2 through the following stack states:
[]
[0]
[0, 1]
[0, 1, 2]
[0, -1]
[1]
[1, 1]
[1, 1, 2]
[1, -1]
[2]
StickStack 코드를 평가하려면 이 온라인 (CJam) 평가기를 사용할 수 있습니다 . (코드는 @Martin에게 감사합니다.)
작업
정수를 입력 출력으로 제공하는 프로그램 또는 함수를 작성하거나 주어진 수를 출력하는 StickStack 프로그램을 나타내는 문자열을 리턴해야합니다.
채점
- 기본 점수는 아래 주어진 테스트 사례에 대한 StickStack 프로그램 의 총 길이입니다 . 낮은 점수가 좋습니다.
- 제출 한 내용은 모든 테스트 사례에서 프로그램을 실행하고 점수를 세는 경우에만 유효합니다.
- 2 차 (tiebreaker) 점수는 생성 프로그램 또는 함수의 길이입니다.
입력 테스트 사례
(각 번호는 다른 테스트 사례입니다.)
-8607 -6615 -6439 -4596 -4195 -1285 -72 12 254 1331 3366 3956 5075 5518 5971 7184 7639 8630 9201 9730
프로그램은 주어진 테스트 사례뿐만 아니라 모든 정수 (데이터 유형이 처리 할 수있는)에 대해 작동해야합니다. 테스트 번호에 대한 솔루션을 프로그램에 하드 코딩해서는 안됩니다. 하드 코딩이 의심 될 경우 테스트 번호가 변경됩니다.