Skip to content

Commit

Permalink
Merge pull request #6 from L1LDB/gani0325
Browse files Browse the repository at this point in the history
post: [10주차_이가은] 🔄 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다
  • Loading branch information
gani0325 authored Dec 24, 2023
2 parents 1a7f9b6 + 9e0aff4 commit 9b146c1
Showing 1 changed file with 79 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
title: 🐢 🔄 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다
author: gani0325
date: 2023-12-24 02:00:00 +09:00
categories: [알고리즘, 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다]
tags: [알고리즘, 백준, 골드5, 구현, 10주차, 이가은]
render_with_liquid: false
math: true
---

## 1. 문제 링크

[6568번: 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다](https://www.acmicpc.net/problem/6568)

<br>ㅇㅇㅇㅇㅇㅇㅇㅇ

## 2. 코드


```python

"""
[6568] 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다
💛 문제
그래서 여러분도 크리스마스날 심심해서 컴퓨터를 하나 만들었다.
이 컴퓨터는 아주 적은 수의 명령어를 사용하는 하나의 프로세서,
32바이트 메모리, 8비트짜리 가산기, 5비트짜리 프로그램 카운터(pc)로 이루어져 있다.
폰 노이만 구조를 표방하여 이 컴퓨터는 메모리와 프로그램 구문을 공유한다.
프로그램 카운터는 다음에 실행되어야 하는 명령어의 주소를 갖고 있다.
각 명령어의 길이는 1바이트이며, 상위 3비트는 명령어의 종류를, 하위 5비트는 피연산자를 표현한다.
피연산자는 언제나 메모리 값(XXXXX)이다. 피연산자가 필요하지 않은 명령어도 있는데, 이때는 하위 5비트는 무의미하다(-----).
사용되는 명령어들의 의미는 다음과 같다.
000xxxxx STA x 메모리 주소 x에 가산기의 값을 저장한다.
001xxxxx LDA x 메모리 주소 x의 값을 가산기로 불러온다.
010xxxxx BEQ x 가산기의 값이 0이면 PC 값을 x로 바꾼다.
011----- NOP 아무 연산도 하지 않는다.
100----- DEC 가산기 값을 1 감소시킨다.
101----- INC 가산기 값을 1 증가시킨다.
110xxxxx JMP x PC 값을 x로 바꾼다.
111----- HLT 프로그램을 종료한다.
초기엔 PC와 가산기 값은 모두 0이다. 명령어를 불러와 해독한 뒤, 그 명령어를 실행하기 전에 PC 값은 1 증가한다.
프로그램은 언제나 종료된다고 가정해도 좋다.
💚 입력
입력은 여러 개의 테스트 케이스로 주어진다. 각 테스트 케이스는 32개의 줄에 걸쳐 각 메모리 값, 즉 코드가 순서대로 8비트 2진수의 형태로 주어진다.
왼쪽에 있는 비트일수록 상위 비트이다. 입력은 EOF와 함께 종료된다.
💙 출력
각 테스트 케이스마다 한 줄에 걸쳐 프로그램이 종료되었을 때의 가산기 값을 역시 8비트 2진수 형태로 출력한다.
이때도 왼쪽에 출력될수록 상위 비트이다.
"""

table = [int(input().splite()) for _ in range(32)]

# pc와 가산기 모두 0
pc, add = 0

while True:

cmd, x = table[pc], 32
pc = (pc + 1) % 32

if cmd == 0:
table[x] = a
elif cmd == 1:
a = table[x]
elif cmd == 2:
if not a:
continue

print(cmd)
```

<br>

0 comments on commit 9b146c1

Please sign in to comment.