message = [i for i in input()]
key = [i for i in input()]
alpha = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
key_alpha = []
# 중복 제거
for i in key:
if i not in key_alpha and i != 'J':
key_alpha.append(i)
for i in alpha:
if i not in key_alpha:
key_alpha.append(i)
# 두 글자씩 나누기
messages = []
tem = ''
for m in range(len(message)):
if len(tem) == 0:
tem = message[m]
elif len(tem) == 1:
if tem == message[m] and tem != 'X':
tem += 'X'
messages.append(tem)
tem = message[m]
elif tem == message[m] and tem == 'X':
tem += 'Q'
messages.append(tem)
tem = message[m]
else:
tem += message[m]
messages.append(tem)
tem = ''
if len(tem) == 1 and m == len(message)-1:
tem += 'X'
messages.append(tem)
# 암호화
for m in range(len(messages)):
i, j = messages[m][0], messages[m][1]
ix, iy = key_alpha.index(i) // 5, key_alpha.index(i) % 5
jx, jy = key_alpha.index(j) // 5, key_alpha.index(j) % 5
if ix == jx:
iy = (iy + 1) % 5
jy = (jy + 1) % 5
elif iy == jy:
ix = (ix + 1) % 5
jx = (jx + 1) % 5
else:
ty = iy
iy = jy
jy = ty
messages[m] = key_alpha[ix*5+iy]+key_alpha[jx*5+jy]
# 이어쓰기
answer = ''
for i in messages:
answer += i
print(answer)
message = [i for i in input()]
key = [i for i in input()]
alpha = [i for i in 'ABCDEFGHIKLMNOPQRSTUVWXYZ']
# 중복 제거
key_alpha = list(set(key + alpha))
# 두 글자씩 나누기
messages = []
tem = ''
for m in range(len(message)):
if len(tem) == 0:
tem = message[m]
elif len(tem) == 1:
if tem == message[m] and tem != 'X':
tem += 'X'
messages.append(tem)
tem = message[m]
elif tem == message[m] and tem == 'X':
tem += 'Q'
messages.append(tem)
tem = message[m]
else:
tem += message[m]
messages.append(tem)
tem = ''
if len(tem) == 1 and m == len(message)-1:
tem += 'X'
messages.append(tem)
# 암호화
for m in range(len(messages)):
i, j = messages[m][0], messages[m][1]
ix, iy = key_alpha.index(i) // 5, key_alpha.index(i) % 5
jx, jy = key_alpha.index(j) // 5, key_alpha.index(j) % 5
if ix == jx:
iy = (iy + 1) % 5
jy = (jy + 1) % 5
elif iy == jy:
ix = (ix + 1) % 5
jx = (jx + 1) % 5
else:
ty = iy
iy = jy
jy = ty
messages[m] = key_alpha[ix*5+iy]+key_alpha[jx*5+jy]
# 이어쓰기
answer = ''
for i in messages:
answer += i
print(answer)
위 코드에서 사용한 함순는 아니지만 풀면서 발견한 함수이다.
🧩 enumerate() 함수