문제 요약 및 풀이
- python에서 ord, chr을 잘 활용하자.
- 단계별로 최대한 함수를 나누어 구현해보면, 더 쉽게 문제가 해결된다.
풀이 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def get_sum(s):
return sum([ord(i) - 65 for i in s])
def rotate_chr(s, n):
return chr((ord(s) - 65 + n) % 26 + 65)
def divide(s):
return s[: len(s) // 2], s[len(s) // 2 :]
def rotate(s, n):
return "".join([rotate_chr(i, n) for i in s])
def merge(a, b):
return "".join([rotate_chr(a[i], ord(b[i]) - 65) for i in range(len(a))])
s = input()
s1, s2 = divide(s)
print(merge(rotate(s1, get_sum(s1)), rotate(s2, get_sum(s2))))