입출력 예시를 보면 num이 홀수 일때, total을 num으로 나눈 값이 가운데로 들어오는 것을 볼 수 있다. 그 후 양옆의 수를 확장해나가면 되고 짝수일때는 가운데 오는 수 두개를 먼저 설정한 후 확장하면 된다. 입출력 예시를 보고 처음 아이디어만 잘 설계하면 쉽게 풀 수 있는 문제
def solution(num, total):
list_t = [0] * num
if num % 2 == 1:
cent = int(total / num)
cent_ind = num // 2
list_t[cent_ind] = cent
for i in range(num // 2):
list_t[cent_ind - (i+1)] = cent - (i+1)
list_t[cent_ind + (i+1)] = cent + (i+1)
elif num % 2 == 0 :
left = total // num
right = total // num + 1
left_ind = int(num / 2 - 1)
right_ind = int(num / 2)
list_t[left_ind] = left
list_t[right_ind] = right
for i in range(int(num / 2 - 1)):
list_t[left_ind - (i+1)] = left - (i+1)
list_t[right_ind + (i+1)] = right + (i+1)
return list_t