백준 15087번: DRM Messages #Python

ColorlessDia·2026년 1월 18일

algorithm/baekjoon

목록 보기
792/807
def calc_ord(char):
    return ord(char) - ord('A')

def rotate_ord(char, value):
    return (calc_ord(char) + value) % 26

S = input()

U_list = [chr(i) for i in range(ord('A'), ord('Z') + 1)]

L = len(S)
H = L // 2

FS = S[:H]
BS = S[H:]

F_N = sum([calc_ord(f) for f in FS])
B_N = sum([calc_ord(b) for b in BS])

F_list = [U_list[rotate_ord(f, F_N)] for f in FS]
B_list = [U_list[rotate_ord(b, B_N)] for b in BS]

DRM_message = []

for F, B in zip(F_list, B_list):
    DRM_message.append(U_list[rotate_ord(F, calc_ord(B))])

print(''.join(DRM_message))

0개의 댓글