brain f**k은 아스키코드랑 메모리를 조합한 언어인데 이름부터 사용자의 뇌를 조질라고 만든것을 알수 있습니다.
코드는 맨처음은 메모리[0]에서 시작합니다.
1번째 줄은 현재메모리(메모리[0])의 값을 +의 갯수만큼 = 10 올리고
2번째줄은 loop로써
>명령어는 메모리 주소 +1
<명령어는 메모리 주소 -1
따라서 각 줄에선 현재메모리= 현재 메모리 주소+1을 하고 해당값에 +++++ 를 함으로써
n개의 메모리에 특정 값을 할당해줍니다 그리고 맨 마지막 <의 반복을 통해 원래의 메모리[0]으로 복귀후 -한뒤 그값이 0이 아니라면 맨 첫줄로 복귀
즉 메모리 [0]의 값 만큼 for문 입니다.
3번째줄은 출력단으로써 원래는 10번반복하는 for문을 써서 각 메모리에는 10의 배수가 채워져 있는데
정확한 아스키코드를 맞추기 위해서 >를 통해 메모리 주소 증가 해당 메모리의 값에 +를 반복해서 정확한 아스키 코드 값을 맞춘뒤
.명령어를 통해 출력합니다
문제 예시인 hello blending에는 l이나 e같이 반복되는 문자가 있기때문에 하나하나 메모리를 만들기보다는
>와 <명령어를 적절히 활용해 해당 값이 들어있는 메모리 주소를 찾아 출력할수 있게 설정했습니다.
댓글 달기