본문으로 건너뛰기
실습하기

목표값보다 큰 합을 가진 정수 리스트 해설

목표값(target)보다 큰 합을 가진 최소 길이의 연속된 정수 리스트를 반환하는 함수를 작성합니다.

이 함수는 스택을 사용하여 연속된 정수들의 합이 target 값을 초과하는 지점을 찾습니다.


함수 구현

  1. 스택 초기화 및 합계 변수 설정:

    • stack: 연속된 정수들을 저장할 스택입니다.

    • total: 스택에 있는 정수들의 현재 합계입니다.

  2. 정수 리스트 순회:

    • 주어진 numbers 리스트의 각 정수를 순회하면서:

      • 정수를 스택에 추가합니다.

      • 합계 변수에 현재 정수를 더합니다.

      • 합계가 target을 초과하는 순간 반복을 중단합니다.

  3. 결과 반환:

    • 스택에 저장된 정수 리스트를 반환합니다. 이 리스트는 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 강의를 등록해 주세요!