Jae-Kyung Cho LLM Developers who was a Robotics engineer

Baekjoon-16506-CPU

만약 문자열 포맷팅을 쓰고 싶다면

format(ra,"03b")

이런 식으로 써주면 되긴 하다.

N = int(input())

op_table = {
    'ADD': '0000',
    'SUB': '0001',
    'MOV': '0010',
    'AND': '0011',
    'OR': '0100',
    'NOT': '0101',
    'MULT': '0110',
    'LSFTL': '0111',
    'LSFTR': '1000',
    'ASFTR': '1001',
    'RL': '1010',
    'RR': '1011',
}

def intToBit(a, bits):
    result = ""
    for i in reversed(range(bits)):
        if a // int(2**i) > 0:
            result += '1'
            a %= int(2**i)
        else:
            result += '0'
    return result

for _ in range(N):
    comm = input().split()
    op = comm[0]
    rd,ra,rb = map(int, comm[1:])

    result = ""

    if op[-1] == 'C':
        result += op_table[op[:-1]] + "10"
    else:
        result += op_table[op] + "00"

    result += intToBit(rd,3)

    if op in ['MOV', 'MOVC', 'NOT']:
        result += "000"
    else:
        result += intToBit(ra,3)
    
    if op[-1] == 'C':
        result += intToBit(rb,4)
    else:
        result += intToBit(rb,3) + "0"
    
    print(result)
Comments