← 학습 코스

변경 기록의 최저 잔액

Python완성형

solution은 받은 값으로 계산해요

함수의 매개변수와 return을 배웠어요. 실전형 함수 문제에서는 입력을 읽는 코드가 따로 있어요. 내가 작성할 부분은 주어진 값을 받아 결과를 반환하는 solution이에요.

def solution(start, changes):
    balance = start
    for change in changes:
        balance = balance + change
    return balance

solution(10, [-3, 5, -8])은 10에서 시작해 7·12·4를 거쳐 마지막 잔액 4를 반환해요. 음수 변경은 지출, 양수 변경은 입금이에요. 함수 안에서는 input이나 print를 다시 쓸 필요가 없어요. 그림은 같은 호출의 잔액 흐름이에요.

start 10과 변경-3·+5·-8을 적용해 balance가 10·7·12·4로 변하는 과정

현재 상태와 최저 상태를 나눠요

이번에는 마지막 잔액이 아니라 가장 낮았던 잔액을 찾아요. 시작 잔액도 관찰한 상태에 포함해요. balance는 현재 값, lowest는 지금까지의 최저값으로 구분해요.

같은 예제에서 두 값은 아래처럼 달라져요.

단계 balance lowest
시작 10 10
−3 7 7
+5 12 7
−8 4 4

아래 편집기에서 입력을 읽는 하네스는 읽기 전용이에요. solution의 몸체를 고쳐 정수 하나를 return해요. changes가 비어 있으면 시작 잔액이 그대로 최저예요.

직접 풀어봐요

solution(start, changes)를 완성해 시작과 각 변경 직후를 포함한 최저 잔액을 반환해요. 잔액이 음수가 되어도 허용해요.

start는 01000, changes 길이는 0100, 각 변경은 −1000~1000이에요. 실행용 입력은 첫 줄 start, 둘째 줄 변경 개수 n, 이 후 n 줄에 변경 값이에요. 하네스가 입력을 읽고 함수 반환값을 출력해요.

예시 1: start= 10, changes=[-3, 5, -8] → 4예요. 예시 2: start= 5, changes=[7, -2] → 5. 시작값도 포함해요.

예시 입력

10
3
-3
5
-8

예상 결과

4

예시 입력

5
2
7
-2

예상 결과

5
핵심 개념
  • function-design: 함수의 입력·반환 계약을 읽고, 현재 상태와 누적 최저 상태를 별도 변수에 유지해요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기