정보처리기사 실기PythonPython - 클로저난이도 2SHORT_ANSWER

정보처리기사 실기 Python - 클로저 기출문제 #1234

문제

다음 Python 코드의 실행 결과를 쓰시오.

Python
def build_accumulator(initial): total = [initial] def add_value(n): total[0] += n return total[0] return add_value acc = build_accumulator(5) print(acc(3), acc(2), acc(1))

정답

8 10 11

8 10 11

해설

클로저를 이용한 누적기 패턴입니다. build_accumulator 함수는 initial 값(5)으로 시작하는 total 리스트를 생성하고, 내부 함수 add_value가 이 리스트를 참조합니다. acc(3) 호출 시 5+3=8, acc(2) 호출 시 8+2=10, acc(1) 호출 시 10+1=11이 반환됩니다. 클로저의 특성상 외부 함수가 종료된 후에도 total 리스트의 상태가 유지됩니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.