그러나 또 다른 Brainfuck 파싱 문제이지만 이번에는 ... 다릅니다.
당신은 Brainfuck 프로그램을 만드는 회사 인 Infinite Monkeys Incorporated에서 다양한 흥미로운 문제를 해결하기 위해 노력하고 있습니다 (사고로, 회사는 무작위로 프로그램을 만듭니다). 그러나 Brainfuck 만 실행하는 빠른 Turing 컴퓨터는 구문 오류와 관련하여 작고 값 비싼 문제가 있습니다-컴퓨터를 만들고 컴퓨터가 폭발합니다. 아마도 디자인 결함 일지 모르지만 아무도 왜 그런지 고민하지 않았습니다.
튜링 머신 (특히 빠른 머신)은 비싸기 때문에 (결국 무한 RAM이 필요) 코드를 실행하기 전에 프로그램에 구문 오류가 없는지 확인하는 것이 좋습니다. 회사에서 많은 코드를 실행하므로 수동 확인이 작동하지 않습니다. Brainfuck 코드 용 STDIN을 읽고 프로그램에 구문 오류가있는 경우 종료 상태가 0 (오류) 이외의 값으로 설정된 상태로 종료하는 프로그램을 작성하십시오 (예 :
]
일치하지 않기 때문에 구문 오류[
임). 프로그램이 완전히 정상이면 종료 상태가 0으로 설정된 상태에서 종료하십시오.프로그램이 관련된 실수를 올바르게 인식하는지 확인하십시오
[]
. 다른 컴퓨터가 폭발하기를 원하지 않습니까? 아, 그리고 가능한 한 짧은 지 확인하십시오-상사는 짧은 프로그램에 대해 비용을 지불합니다 (그가 빠르거나 다른 것으로 생각하기 때문에). 아, 그리고 당신은 Brainfuck에서 코딩 할 필요가 없습니다 (실제로 Brainfuck은 종료 코드를 지원하지 않기 때문에 할 수 없습니다)-코드는 일반 컴퓨터에서 실행됩니다.
보시다시피, Brainfuck 프로그램이 "유효한"(페어링 된 []
기호 가 있는지) 여부를 확인해야합니다 . Brainfuck 프로그램은 이외의 다른 문자를 가질 수 []
있으므로 다른 명령이 있기 때문에 프로그램을 거부하지 마십시오. 가장 작은 코드가 승리하지만 어쨌든 상향 투표에 더 관심이있을 것입니다.
GCD(a,b)
대신 사용할 수 있습니다 0 != a || b
.