import math
def solution(num, total):
answer = []
if num % 2==0:
j = math.ceil(total/num)
a = [j-1] ; b = [j]
for i in range(num//2-1):
a.append(a[-1]-1)
b.append(b[-1]+1)
a = a[::-1]
answer = a+b
else:
j = math.ceil(total/num)
j -= num//2
for i in range(num):
# if i == num//2:
answer.append(j)
j+=1
return answer
풀이
num이 짝수일 때와 홀수일 때로 나눠서 정의된다.
짝수일 때의 예시를 들어 설명한다. (짝수는 4로 두고, total은 14로 둔다) 1. math.ceil(total//num) = 4를 두 개의 리스트에 하나는 4-1을, 하나에는 4를 넣는다. (a=[3], b=[4]) 2. ( total//num) - 1의 횟수만큼 a에는 a[-1]-1을 append, b에는 b[-1]+1을 append한다. 3. 턴이 다 끝났다면 a는 순서를 뒤집고, b는 순서를 그대로 두어 연결한다.
홀수일 때도 예시를 들어 설명한다. (홀수는 5로 두고, total은 15로 둔다) 1. math.ceil(total//num) = 3을 기준으로 5//2를 3에서 뺀다. (j=-1) 2. 그리고 num만큼 j를 리스트에 append하는데, 한 턴마다 j+=1를 해준다. 3. 턴이 다 끝났다면 그대로 출력한다.