목표값보다 큰 합을 가진 정수 리스트 해설
목표값(target
)보다 큰 합을 가진 최소 길이의 연속된 정수 리스트를 반환하는 함수를 작성합니다.
이 함수는 스택을 사용하여 연속된 정수들의 합이 target
값을 초과하는 지점을 찾습니다.
함수 구현
-
스택 초기화 및 합계 변수 설정
:-
stack
: 연속된 정수들을 저장할 스택입니다. -
total
: 스택에 있는 정수들의 현재 합계입니다.
-
-
정수 리스트 순회
:-
주어진
numbers
리스트의 각 정수를 순회하면서:-
정수를 스택에 추가합니다.
-
합계 변수에 현재 정수를 더합니다.
-
합계가
target
을 초과하는 순간 반복을 중단합니다.
-
-
-
결과 반환
:- 스택에 저장된 정수 리스트를 반환합니다. 이 리스트는
target
값을 초과하는 최소 길이의 연속된 정수들을 포함합니다.
- 스택에 저장된 정수 리스트를 반환합니다. 이 리스트는
모범 답안
def solution(target, numbers):
stack = [] # 스택 초기화
total = 0 # 합계 변수 초기화
for num in numbers: # 리스트 순회
stack.append(num) # 스택에 정수 추가
total += num # 합계 업데이트
if total > target: # 합계가 목표값을 초과하면 반복 중단
break
return stack # 스택 반환
사용 예시
입출력 예시
print(solution(15, [1, 2, 3, 5, 7, 8])) # 출력: [1, 2, 3, 5, 7]
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!