이 챌린지는 2018 년 4 월 LotM 챌린지의 일부로 게시되었습니다.
Brain-Flak 은 PPCG에 많은 명성을 얻은 타르 타르타르 언어입니다. 이 언어의 메모리는 두 개의 스택으로 구성되어 있지만 "숨겨진"세 번째 스택 은 Wizard에서 Wh e 에 의해 발견 되어 Brain-Flak 프로그램을 생각하는 흥미로운 새로운 방식으로 이어졌습니다.
그렇다면, 그 열악한 숨겨진 세 번째 스택에 더 많은 가시성을 제공하는 것은 어떻습니까? 세 번째 스택이 인식 할 수있는 언어를 만들어 봅시다! 여기에 나는 당신에게 Third-Flak을 선물합니다 .
언어
Third-Flak에는 세 번째 스택이라고하는 하나의 스택 만 있습니다. 운영자들은 뇌 - 플랙에서와 같은 방법으로 세 번째 스택에 작동하지만 여기에는 없다 []
, {}
, <>
nilads없이 {...}
모나드 (써드 플랙 프로그램에서 유일하게 허용 문자는 그래서는 ()[]<>
). 각 연산자의 기능은 다음과 같습니다 (마지막 요소가 스택의 맨 위에있는 목록과 함께 세 번째 스택을 나타내는 예제가 제공됨).
()
Third-Flak에서 유일한 두 문자 연산자입니다. 세 번째 스택의 상단이 1 씩 증가합니다. 예 :[1,2,3]
→[1,2,4]
(
,[
,<
: 앞 케이스에 의해 덮여 있지 않은 모든 개구 괄호는 밀어0
제 스택. 예 :[1,2,3]
→[1,2,3,0]
)
세 번째 스택에서 두 개의 요소를 팝하고 합계를 되돌립니다. 예 :[1,2,3]
→[1,5]
]
세 번째 스택에서 두 개의 요소를 팝하고 두 번째에서 첫 번째 요소를 뺀 결과를 뒤로 밀어냅니다. 예 :[1,2,3]
→[1,-1]
>
세 번째 스택에서 요소를 팝합니다. 예[1,2,3]
→[1,2]
그리고 언어의 다른 규칙은 다음과 같습니다.
실행 시작시 세 번째 스택에는 단일 0 만 포함됩니다.
프로그램 이 비어
[]
있거나<>
내부에있는 것은 금지되어 있습니다 (Third-Flak의 의미를 따르는 경우 어쨌든 noops 일 수 있지만 실제로 Brain-Flak에서 다른 의미를 가지므로 여기서 다시 만들 수 없습니다).프로그램 끝의 마지막 닫는 괄호가 누락 될 수 있다는 점을 제외하고 괄호는 항상 균형을 유지해야합니다. 예를 들어
[()<(()
유효한 Third-Flak 프로그램입니다 (프로그램 끝의 세 번째 스택은[1,0,1]
).프로그램은 6 개의 허용 문자 만 포함 할 수 있습니다
()[]<>
. 프로그램은 비어 있지 않은 것으로 보장됩니다.
참고 : 빈 스택에서 팝업해야하는 상황을 처리 할 필요가없는 이전 규칙에 의해 암시됩니다.
도전
간단하게 Third-Flak의 통역사를 작성하십시오. 프로그램은 Third-Flak 프로그램을 입력으로 사용하고 프로그램 끝에서 세 번째 스택의 상태를 출력으로 반환해야합니다.
세 번째 스택의 상태를 명확하게 읽을 수 있고 출력 번호가 항상 같은 방식으로 인코딩되는 한 출력 형식은 유연합니다. 부정 행위를 시도하는 것이 좋습니다).
챌린지가 사소한 일이 아닌 한 출력 선택에 따라 관리 할 수있는 숫자의 범위가 제한 될 수 있습니다 ( 이는 기본 허점 이기 때문입니다 ).
테스트 사례
각 테스트 사례에서 첫 번째 줄은 입력이고 두 번째 줄은 스택의 상단이 마지막 요소 인 공백으로 구분 된 숫자 목록으로 표시됩니다.
[()<(()
0 1 0 1
[((((()()()()()))
0 0 0 5
((([()][()][()])))
-3
[<<(((()()()())(((((
0 0 0 0 0 4 0 0 0 0 0
[()]<(([()])><[()]
-1 0 -1
(())(()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(())(()()())(())(()()()()())(())(())(())(())(()()()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(())(()()())(())(()()()()())(())(())(())(())(())(())(()())(())(())(())(()())(()()()())(())(()()()()())(()())(()())(()())(()()())(())(()())(())(()()()()())(()())(()()()()())(())(())(())(())(())(()())(())(())(())(()()()()())(())(())(()()()()())(())(())(()()()()())(())(())(()())(())(()())(())(()())(())(()())(())(()())(()())(()())(()())(()())(()())(()())(()())(())(()()()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(())(()()())(())(())(()()())(()())(())(()()()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(())(())(())(()()())(())(())(()()())(())(())(()()())(())(()()()()())(()())(()()()()())(()()())(())(()()())(())(())(())(()())(()()())(()())(())(()()()()())(()())(())(()()())(())(()()()()())(())(())(())(()()())(())(())(())(()())(())(()())(()()()())(())(())(()()()()())(()())(()())(())(()()())(())(())(())(())(()()())(()())(())(())(()()()()())(())(())(()()()()())(())(())(()()()()())(())(())(()())(())(()())(())(()())(())(()())(()())(()())(()())(())(()()()()())(()())(())(()()())(())(()()()()())(()()()()())(())(()()())(())(())(()())(())(()()()()())(())(()()()()())(())(())(())(()()()()())(())(())(()())(())(()())(())(()())(())(()())(())(()())(()())(()())(()())(())(()()()()())(()())(())(()()())(())(())(()())(())(()()()()())(()())(()()()()())(())(()()())(())(())(()()()()())(())(()()()()())(())(())(())(()())(())(()()()()())(())(())(()())(())(()())(())(()())(()())(()())(()())(())(()()()()())(()())(())(()()()()())(())(()()())(())(())(()())(())(()()()()())(()())(()()()()())(())(()()())(())(())(())(()())(()()()())(())(())(()())(())(()()()()())(())(())(()()()()())(())(())(()()()()())(())(())(()())(())(()())(())(()())(())(()())(())(()())(()())(()())(()())(()())(()())(())(()()())(())(())(()())(())(()()()()())(()())(()()()()())(()()())(())(())(()())(())(())(()()()()())(()()()())(()())(()())(()()())(())(()())(())(()()()()())(()())(()()()()())(())(())(())(()()()())(()()()())(()()
718 2
e
은 여기에 있습니다 .
[()]
빈 스택에서 터지는 것에 대해 걱정할 필요가 없다는 규칙을 어기 게됩니다