관리 메뉴

커리까지

[프로그래머스] 연속된 수의 합 파이썬 본문

알고리즘/풀이

[프로그래머스] 연속된 수의 합 파이썬

목표는 커리 2023. 10. 25. 17:47
728x90
SMALL

문제 설명

연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 numtotal이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.


제한사항
  • 1 ≤ num ≤ 100
  • 0 ≤ total ≤ 1000
  • num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.

입출력 예
num total result
3 12 [3, 4, 5]
5 15 [1, 2, 3, 4, 5]
4 14 [2, 3, 4, 5]
5 5 [-1, 0, 1, 2, 3]

입출력 예 설명

입출력 예 #1

  • num = 3, total = 12인 경우 [3, 4, 5]를 return합니다.

입출력 예 #2

  • num = 5, total = 15인 경우 [1, 2, 3, 4, 5]를 return합니다.

입출력 예 #3

  • 4개의 연속된 수를 더해 14가 되는 경우는 2, 3, 4, 5입니다.

입출력 예 #4

  • 설명 생략

제출 답안

  • 이 방법은 계속해서 start, end를 갱신하는 방법이다.
  • 다른 방법으로는 등차수열처럼 공식을 사용해서 구하는 방법이 있다.
def solution(num, total):
    start, end = 1, 1 + num
    while True:
        continuous_integer = [i for i in range(start, end)]
        integer_sum = sum(continuous_integer)
        if integer_sum == total:
            return continuous_integer
        if total < integer_sum:
            start -= 1
            end -= 1
        else:
            start += 1
            end += 1
728x90
LIST