The input is a string str of digits. Cut the string into chunks (a chunk here is a substring of the initial string) of size sz (ignore the last chunk if its size is less than sz).
If a chunk represents an integer such as the sum of the cubes of its digits is divisible by 2, reverse that chunk; otherwise rotate it to the left by one position. Put together these modified chunks and return the result as a string.
요약
주어진 문자열을 sz길이로 자름. 잘려진 각각의 덩어리들의 숫자들의 세제곱의 합이 짝수일 경우에는 뒤집힌 문자열을, 홀수일 경우에는 왼쪽으로 한 칸 돌린 문자열(예시참조)을 반환하고 각각의 수정된 문자열 덩어리들을 합친값을 반환함
sz is <= 0 or if str is empty return ""
sz is greater (>) than the length of str it is impossible to take a chunk of size sz hence return "".
'sz'나 'str'값이 빈 값일 경우에는 공백을 return
'sz'가 문자열이나 문자열덩어리보다 큰 경우에도 공백으로 return 혹은 치환
revrot("123456987654", 6) --> "234561876549"
revrot("123456987653", 6) --> "234561356789"
revrot("66443875", 4) --> "44668753"
revrot("66443875", 8) --> "64438756"
revrot("664438769", 8) --> "67834466"
revrot("123456779", 8) --> "23456771"
revrot("", 8) --> ""
revrot("123456779", 0) --> ""
revrot("563000655734469485", 4) --> "0365065073456944"
'''
Example of a string rotated to the left by one position:
s = "123456" gives "234561".
'''
def rev_rot(s, sz):
result = ''
if sz > len(s) or sz <= 0 or len(s) <= 0:
return ''
for v in [s[i:i+sz] for i in range(0,len(s),sz)]:
if len(v) >= sz:
if sum([int(n)**3 for n in v]) % 2 == 0:
result += v[::-1]
else:
result += (v[1:]+v[0])
return result