안 쓰던 블로그

TIS-100 SEQUENCE REVERSER (SEGMENT 42656) 공략 본문

취미/TIS-100 공략

TIS-100 SEQUENCE REVERSER (SEGMENT 42656) 공략

proqk 2020. 6. 29. 14:24
반응형

0이 들어오면 0전까지 쌓인 수를 거꾸로 출력

즉 1 2 3 4 5 0이면 5 4 3 2 1 0을 출력하라는 말

 

고급 언어에서 이런 경우

1. 입력 받고 0인지 판단

2. 0이 아니면 스택에 값을 넣음. 길이+1

3. 0이면 스택에 있는 값을 길이만큼 전체 출력

순서겠고, 어셈으로 바꿔보면

 

1. 입력 받고 0인지 판단

2. 0이 아니면 스택에 값을 넣음. BAK에 길이+1

3. 0이면 입력 일시 정지. 스택에 있는 값을 길이BAK만큼 전체 출력

4. 출력이 끝나면 입력 다시 실행

 

입력을 잠시 멈추는 코드가 필요하다

안 그러면 출력하는데 다른 값을 출력하게 되니까ㅋㅋ

1번 노드에서 1번 과정을 한다

0이 아니면 계속 아래로 값을 보내고, 0이면 오른쪽에서 값이 들어올 때까지 대기한다

 

2번 노드에서는 위에서 넘어온 값을 받아 스택에 넣고 BAK값에다가 길이+1을 한다

만약 넘어온 값이 0이라면 print로 넘어가며, 오른쪽으로 길이 정보를 넘기고 BAK값을 초기화 한다

 

3번은 위에서 길이를 받는다

그리고 길이만큼 스택에서 값을 뽑아 출력한다

출력이 끝나면 마지막 값인 0을 출력한 뒤, 출력 끝났다는 신호 1을 넘긴다

1은 오른쪽부터 아래서 위로 쭉쭉 올라가서 스택에 들어가서 대기타고 있는 1번 노드에 간다

그러면 1번 노드는 다시 입력을 시작하게 된다

반응형
Comments