PY-L4-092 / 설계와 검증
트랜잭션 롤백 모형
고급문제
초기 잔액 balance와 정수 변경 목록 changes를 받습니다. 중간에 잔액이 음수가 되면 전부 취소하여 원래 잔액, 모두 성공하면 최종 잔액을 반환하세요.
solve(*args) 함수에서 값을 반환하세요. print 출력은 정답 판정에 사용하지 않습니다.
입출력 예시
예제 1
입력: [10,[-3,5]] 반환: 12
예제 2
입력: [10,[-20,30]] 반환: 10
힌트
계산 중인 임시 상태와 확정 상태를 분리하세요.
해설·정답 보기
원본 balance를 변경하지 않고 임시 상태를 검증한 뒤 확정합니다. 이 문제는 데이터베이스가 아닌 트랜잭션의 메모리 모형입니다.
def solve(balance, changes):
current = balance
for change in changes:
current += change
if current < 0:
return balance
return currentsolution.py결과 비교
코드는 이 브라우저에 자동 저장돼요.
풀이 결과
코드를 작성하고 채점하기를 눌러보세요.
학습용으로 제공된 조건을 확인해요. 알고리즘 사용 방식·설계 의도는 해설과 함께 비교해보세요.