문제

  • SEQUENCES ARE ZERO-TERMINATED
  • READ A SEQUENCE FROM IN
  • WRITE THE MIN VALUE TO OUT.I
  • WRITE THE MAX VALUE TO OUT.A
  • 시퀀스는 0으로 끝난다.
  • IN으로 들어오는 시퀀스를 읽는다.
  • 시퀀스에서 가장 작은 수를 OUT.I 로 출력한다.
  • 시퀀스에서 가장 큰 수를 OUT.A 로 출력한다.

image

풀이 1

  • 270 CYCLES / 6 NODES / 34 INSTR

image

save/41427.0.txt

@0

@1
MOV ANY, ACC
MOV ACC, DOWN
MOV ACC, RIGHT

@2
MOV ANY, DOWN

@3


@4


@5
MOV ANY, ACC
MOV ACC, DOWN  # 비교용
MOV ACC, DOWN  # 값 전달용

@6
MOV ANY, ACC
MOV ACC, DOWN  # 비교용
MOV ACC, DOWN  # 값 전달용

@7


@8
 # MIN 값을 찾는 노드
MOV 1000, ACC   # MIN 값 초기화
^:
  SAV
  SUB UP
  JLZ NEW-MIN
  MOV UP, ACC
  JEZ END-SEQ
  JMP ^

NEW-MIN:
  MOV UP, ACC
  SWP
  JMP ^

END-SEQ:
  SWP
  MOV ACC, DOWN

@9
 # MAX 값을 찾는 노드
MOV -1000, ACC  # MAX 값 초기화
^:
  SAV
  SUB UP
  JGZ NEW-MAX
  MOV UP, ACC
  JMP ^

NEW-MAX:
  MOV UP, ACC
  JEZ END-SEQ
  SWP
  JMP ^

END-SEQ:
  SWP
  MOV ACC, DOWN

@10