https://school.programmers.co.kr/learn/courses/30/lessons/134239
def solution(k, ranges):
answer = []
x = 0
pos = [(x, k)] # (x, y)
while k != 1:
if k % 2 == 0:
k = k // 2
else:
k = (k*3) + 1
x += 1
pos.append((x, k))
value = []
for i in range(1, len(pos)):
value.append((pos[i][1] + pos[i-1][1]) / 2)
for x1, x2 in ranges:
x2 = x+x2
if x1 == x2:
answer.append(0.0)
elif x1 > x2:
answer.append(-1.0)
else:
answer.append(sum(value[x1:x2]))
return answer
경계값 인덱스가 헷갈릴때는 고민하지말고 print()로 계속 값을 찍어보자