1. Clarifying Questions/idea
- 음수도 포함이 되는가? 예시 보니 그러하다
- 연속된 수들이니까 1씩 차이가 남
- 홀수개 : 1,2,3,4,5 >> 합은 사실 (가운데수) *((num / 2 )*2 + 1)
- 짝수개: 2,3,4,5 >> (처음과 끝수 더한 합) * (num/2)
2. Get to the most Optimized solution
- num이 홀수인지 짝수인지 구분
- 홀수 일때 구현 - mid 변수를 구해서 -1 씩 빼주는
- 짝수 일때 구현 - (처음과 끝수의 합)을 구하고 차이만큼 빼서 첫번째 수 찾기
3. Code
def solution(num, total):
answer = []
if (num % 2 == 0):
firstLast = total / num * 2
firstNum = (firstLast - (num-1))/2
for i in range(num):
answer.append(firstNum)
firstNum += 1
else:
mid = total / (int(num / 2) * 2 + 1)
firstNum = mid - int(num / 2)
for i in range(num):
answer.append(firstNum)
firstNum += 1
return answer