문제

  • READ A VALUE FROM IN
  • LOOK FOR THE PATTERN 0,0,0
  • WRITE 1 WHEN PATTERN IS FOUND
  • IF NOT TRUE, WRITE 0 INSTEAD
  • IN으로 들어오는 값을 읽는다.
  • IN이 0,0,0 패턴인지 식별한다.
  • 패턴이 맞으면 1을 출력한다.
  • 아니면 0을 출력한다.

image

풀이 1

  • 177 CYCLES / 4 NODES / 15 INSTR

4개의 노드를 사용하는 방법이다.

image

save/40196.1.txt

@0


@1
^:
 MOV 0, DOWN    # 무조건 0을 출력한다.
 MOV UP, ACC    # IN 을 입력받아 더한다.
 JNZ ^          # 더한 결과가 0 이 아니라면 처음으로 돌아간다.

 MOV 0, DOWN    # 더한 결과가 0 이라면 0 패턴. 0을 출력한다.
 ADD UP         # IN을 입력받아 더한다.
 JNZ ^          # 처음으로 돌아간다.

00:         # 00 인 경우
 ADD UP     # IN 을 입력받아 더한다
 JEZ 000    # 더한 결과가 0 이면 goto 000
 MOV 0, DOWN
 JNZ ^

000:        # 000 패턴인 경우
 MOV 1, DOWN    # 1을 출력한다
 JMP 00         # goto 00

@2


@3


@4
MOV UP, DOWN

@5


@6


@7


@8
MOV UP, RIGHT

@9
MOV LEFT, DOWN

@10