문제
Brainf*ck은 Urban Müller가 1993년에 만든 프로그래밍 언어이다. 그의 목적은 역사상 가장 작은 튜링 완전 언어(Turing -complete language)의 컴파일러를 만드는 것이었다.위키백과에는 다음과 같은 설명이 적혀져 있다. (designed to challenge and amuse programmers, and was not made to be suitable for practical use)
이 언어는 0으로 초기화 된 크기가 32768바이트인 바이트 배열, 배열의 맨 첫 바이트를 가리키는 포인터를 가지고 있다.
다음과 같이 7가지 명령어를 가지고 있으며, 각 명령어는 문자 1글자이다. (원래 8가지 명령어를 가지고 있지만, 문제를 위해 하나를 지웠다)
>: 포인터를 증가시킨다. 만약, 포인터 값이 32767이면 0이된다.<: 포인터를 감소시킨다. 만약, 포인터 값이 0이면 32767이 된다.+: 포인터가 가리키는 값을 증가시킨다. 255를 증가시키면 0이 된다.-: 포인터가 가리키는 값을 감소시킨다. 0을 감소시키면 255가 된다..: 포인터가 가리키는 값을 ASCII문자로 출력한다.[: 포인터가 가리키는 값이 0이면, 짝이 되는 뒤쪽의 ]로 이동한다.]: 포인터가 가리키는 값이 0이 아니면, 짝이되는 앞쪽의 [로 이동한다.
Brainf*ck 프로그램이 주어졌을 때, 이 프로그램의 출력을 출력하는 프로그램을 작성하시오.