반응형
문제 설명
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
제한 사항
1 ≤ num ≤ 100
0 ≤ total ≤ 1000
num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.
입출력
num | total | return |
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] |
코드 및 설명
def solution(num, total):
check_arr = []
for idx in range(-num, total+num):
check_arr.append(idx)
if len(check_arr) == num:
if sum(check_arr) == total:
break
else:
check_arr.pop(0)
return check_arr
이 문제는 누적합 문제로 num의 정수를 만큼을 합쳐서 나온 값이 total이여야한다. 먄약 num이 3이면 3개의 정수를 합쳐서 그 값이 total = 12가 되어야 하는 것이다. 그래서 range의 범위는 -num 부터 total+num까지 반복하면 되고, 여기서 len(check_arr) == num 은 num이 3개면 3개의 정수의 값을 합쳐야하므로 3개일때 sum이 total인지 확인하고 맞으면 break
아니면 맨앞 배열을 하나 뺴준다. 이게 반복되면 답을 구할 수 있다.
반응형
'삽집하는 개발들 > 알고리즘' 카테고리의 다른 글
[74일차][Lv2][프로그래머스][누적합][178870]연속된 부분 수열의 합 (6) | 2023.11.12 |
---|---|
[알고리즘 공부 방식 변경] (0) | 2023.11.12 |
[73일차][Lv2][프로그래머스][스택/큐][42586]기능개발 (41) | 2023.11.09 |
[72일차][Lv2][프로그래머스][12949]행렬의 곱셈 (5) | 2023.11.06 |
[71일차][Lv2][프로그래머스][정렬][42747]H-Index (7) | 2023.11.03 |