안 쓰던 블로그

TIS-100 NO_BACKUP 도전과제 공략 본문

취미/TIS-100 공략

TIS-100 NO_BACKUP 도전과제 공략

proqk 2020. 6. 28. 15:13
반응형

Solve SEQUENCE COUNTER without using the SWP instruction

그냥 풀면 이렇게 풀린다 https://foxtrotin.tistory.com/200

 

원래는 BAK에 값을 저장하다가 0이 오면 출력하는 방법으로 풀었는데

BAK을 쓰지 않는다면 ACC만 쓰면 된다

 

ACC만 쓰려면 0이 올 때까지 수를 그냥 ACC에 계속 누적하다가, 0이 오면 출력하는 방법으로 하면 되긴 할텐데

그러면 ACC에 새로운 값이 들어오면 누적값이 없어지는 거 아니야? 할 수도 있음

의외로 되게 간단한 방법이 있는데 0이 오면 터무니 없는 음수 값을 ACC에 더하고, 0이하라면 0이 왔다고 판단하고 출력하면 된다

물론 입력값에 음수가 없다는 위험한 전제가 있어야 하지만. 어쨌든 여기서는 음수가 없기 때문에 가능한 방법

 

 

입력을 받아서 0이면 -999를 아래와 오른쪽으로 보낸다

0이 아니면 ACC값과 1을 각각 아래, 오른쪽으로 보낸다

 

오른쪽에서는 왼쪽에서 온 값을 ACC에 더한다(-999든 일반 값이든)

만약 -999를 더했다면 음수가 될 테니까 JLZ로 0보다 작다면 ZERO:로 분기한다

아니면 계속 그 루프를 돌고 있다

분기해서 ZERO로 오면, 일단 -999값을 +999해서 원래 값으로 만들어주고, 그 값을 DOWN으로 보내서 출력한다

0으로 초기화 해준다

 

아래쪽에서도 똑같이 위에서 온 값을 ACC에 더한다

-999면 ZERO로 분기하고 아니면 ACC에 값을 더한다

반응형
Comments