연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 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합니다.
활용개념 : 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)