반응형
문제
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다.
두 정수 num과 total이 주어집니다.
연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
문제 요약
연속된 num개 수의 합이 total이 되도록 해야 한다.
풀이
def solution(num, total):
avg = total // num
return [i for i in range(avg-(num-1)//2, avg+(num+2)//2)]
[3, 4, 5] 의 경우,
total//num = 4를 기준으로 [4-1, 4, 4+1]이다.
이 리스트를 range로 나타내면 파이썬에서 range는 (시작, 끝)에서 끝-1까지의 값을 의미한다.
그래서 [4-1, 4, 4+1]를 range로 나타내면 range(4-1, 4+2)이다.
range(4-1, 4+2)를 num = 3을 이용해 식을 쓰면 (4-(3-1)//2, 4+(3+2)//2)로 나타낼 수 있다.
[2, 3, 4, 5]의 경우,
total//num = 3 을 기준으로 [3-1, 3, 3+1, 3+2]다.
이 리스트를 range로 나타내면 range(3-1, 3+3)이 된다.
range(3-1, 3+3)을 num = 4 기준으로 식을 쓰면 (3-(4-1)//2, 3+(4+2)//2)로 나타낼 수 있다.
따라서 total//num을 avg라고 했을 때, range의 범위는 range(avg-(num-1)//2, avg+(num+2)//2)
배운 점
range(시작, 끝) : 시작 ~ 끝-1
반응형