def encode(ans):
return [rotate_bits_right(ord(x), 3, 8) for x in ans]
def to_string(v):
return ''.join([str(i) for i in v])
def rotate_bits_right(number, shift, bit_length):
rotated_bits = number >> shift & ((1 << bit_length) - 1)
result = (number << (bit_length - shift)) | rotated_bits
return result
ans = input()
encode_value = encode(ans)
result = to_string(encode_value)
print(result)
일단 간단하게 인코딩할 때 유니코드로 변환한 데이터를 제곱하고 10을 나눈 나머지를 시프트 연산하도록 했다
def encode(ans):
return [rotate_bits_right(ord(x)**2%10, 3, 8) for x in ans]
def to_string(v):
return ''.join([str(i) for i in v])
def rotate_bits_right(number, shift, bit_length):
rotated_bits = number >> shift & ((1 << bit_length) - 1)
result = (number << (bit_length - shift)) | rotated_bits
return result
ans = input()
encode_value = encode(ans)
result = to_string(encode_value)
print(result)