063. 은행 계좌 관리
Medium
바이브코딩
MCPFinanceSystem
문제 설명
[문제]
은행 계좌 관리 MCP 서버를 구현하시오.
계좌 이름별로 잔액을 관리한다. 계좌를 만들고, 입금하고, 출금하고, 잔액을 조회한다. 존재하지 않는 계좌를 다루거나 잔액보다 많이 출금하려 하면 -1로 실패를 알린다.
[구현할 함수]
- create_account(account_name: str) -> int
잔액 0인 새 계좌를 만든다. 생성 후 전체 계좌 수를 반환한다.
- deposit(account_name: str, amount: float) -> number
해당 계좌에 amount만큼 입금한다. 입금 후 그 계좌의 잔액을 반환한다. 계좌가 없으면 -1을 반환한다.
- withdraw(account_name: str, amount: float) -> number
해당 계좌에서 amount만큼 출금한다. 출금 후 잔액을 반환한다. 계좌가 없거나 잔액이 부족하면 -1을 반환한다.
- get_balance(account_name: str) -> number
해당 계좌의 잔액을 반환한다. 계좌가 없으면 -1을 반환한다.
[입력·상태]
서버는 계좌 이름 -> 잔액 형태의 키-값 저장소를 상태로 유지한다. 초기 상태는 계좌가 없는 빈 상태이다.
[제약]
- 새 계좌의 초기 잔액은 0이다.
- 없는 계좌에 대한 deposit/withdraw/get_balance는 모두 -1이다.
- 잔액보다 큰 금액 출금은 -1(실패)이며 잔액은 변하지 않는다.
[예시]
create_account("홍길동") -> 1
create_account("홍길동"); deposit("홍길동", 1000) -> 1000
create_account("홍길동"); deposit("홍길동", 1000); withdraw("홍길동", 500) -> 500
create_account("홍길동"); get_balance("홍길동") -> 0 # 초기 잔액
deposit("없음", 100) -> -1 # 없는 계좌 (경계)
withdraw("없음", 100) -> -1 # 없는 계좌 (경계)
get_balance("없음") -> -1 # 없는 계좌 (경계)
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.