https://school.programmers.co.kr/learn/courses/30/lessons/120923?language=python3
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다.
두 정수 num과 total이 주어집니다.
연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
num=3, total=12를 예시로 보면
num을 통해 배열의 길이가 3임을 알 수 있다.
배열은 0부터 시작하니 [0,1,2]가 처음 answer이 되는데 여기에 +3을 통해 12를 구할 수 있다.
+3을 구하는 방법
간단하게 생각하면 total/num을 통해 중앙 값을 구할 수 있다.
문제는 중앙 값은 index 1의 값인데 여기서 배열의 길이 num의 평균을 구하면 우리는 중앙 값을 기준으로 앞, 뒤 숫자의 길이를 알 수 있다.
즉, 4의 평균에 앞 위로 1씩 총 길이가 3인 배열이 answer이다.
전체 풀이
배열의 중앙 값 - 배열의 평균 길이를 통해 초기 배열에 더할 v를 만들어준다.
answer의 값에 v를 더해서 반환
import math
def solution(num, total):
v = math.ceil(total/num - math.floor(num/2))
answer = [i+v for i in range(num)]
return answer