문제

연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
제한사항
1 ≤ num ≤ 100
0 ≤ total ≤ 1000
num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.

구상

  1. n부터 시작해서 num개까지 증가하는 리스트 result를 만든다
    result = [n, n+1, n+2, n+3 ...]
  2. result에 sum 함수를 이용해서 total값과 같을 때의 n값을 구한다
  3. result의 요소들을 오름차순 정렬하면 answer 배열이 나온다

막힌곳

1을 어떻게 구현하지
-> 처음에 n+i로 두고 i를 for문으로 돌릴까 했었는데 그게 맞았네....

정답

def solution(num, total):
    for n in range(-1000, 1001):
        result = [n + i for i in range(num)]
        if sum(result) == total:
            return result

복습

n을 꼭 구해야한다고 생각했는데, n+i와 n은 단순히 1씩 커지는 숫자를 의미하기 때문에 n을 구할필요는 없다

profile
여기 초과학기가 확정되어 울면서 학교를 다니는 사람이 있습니다.

0개의 댓글