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

Vincent·2023년 1월 17일
0

문제 설명

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

제한사항

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

입출력 예

numtotalresult
312[3, 4, 5]
515[1,2,3, 4, 5]
414[2, 3, 4, 5]
55[-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합니다.

풀이

활용개념 : for, while문 다루기

def solution(num, total):
    check = 0 #1부터 num까지 더해서 total이 나올수 있는지 체크
    for a in range(1,num+1):
        check += a
    if check > total: #나올 수 없는 경우 역순으로 포문 돌리기
        i = 0
        while True:
            lst = []
            for k in range(num-i,-i,-1):
                lst.append(k)
            if sum(lst) == total:
                break
            i+=1
    else: #나올 수 있는 경우 순서대로 포문 돌리기
        i = 1
        while True: 
            lst = []
            for j in range(i,num+i):
                lst.append(j)
            if sum(lst) == total:
                break
            i += 1
    return sorted(lst)
profile
Frontend & Artificial Intelligence

0개의 댓글