-
자판기가 보유하고 있는 금액 입력 받기
- 입력값 검증
- 숫자인지
- 10의 배수인지
- 입력값 검증
-
자판기가 보유하고 있는 금액으로 동전을 무작위로 생성
-
자판기가 보유하고 있는 동전 출력
-
상품명, 가격, 수량 입력 받기
- 입력값 검증
- 숫자인지
- 100원 이상인지
- 10원으로 나누어 떨어지는지
- 입력값 검증
-
투입 금액 입력 받기
- 입력값 검증
- 숫자인지
- 양수인지
- 입력값 검증
-
구매할 상품 입력 받기
-
입력 받은 상품 구매 가능 여부 확인
- 상품의 품절 여부
- 잔액이 충분한지
- 판매하는 상품인지
-
상품 구매
- 남은 투입금액 계산
- 남은 상품 수량 계산
-
잔돈 반환 여부 확인
- 잔돈 반환
- 남은 금액이 남은 상품의 최저 가격보다 적은 경우
- 모든 상품이 소진된 경우
- 잔돈 반환 X
- 상품 추가 구매
- 잔돈 반환
-
잔돈 계산
- 잔돈 전체 반환 가능 여부 확인
- 잔돈이 자판기 보유금액보다 금액이 작은 경우 > 전체 반환
- 잔돈이 자판기 보유금액보다 금액이 큰 경우 > 잔돈으로 반환할 수 있는 금액(보유금액)만 반환
- 잔돈 전체 반환 가능 여부 확인
-
잔돈 출력