Search

이차반복문5_문제13_자판기

대분류
STEP07 이차반복문
문제 난이도
LV07
소분류
이차반복문5_문제

영상

문제

<script> /* [문제] 철수는 자판기에 물건을 채우려고 한다. vending 배열은 현재 자판기에 남아있는 물건 개수이다. box배열은 자판기에 추가할 물건 개수이며, 5개씩 4줄 총 20개 여분이 있다. box의 앞에서부터 순차적으로 자판기에 물건을 채워 넣는다. 자판기는 한 줄당 최대 10개까지 채울 수 있다. 자판기가 전부 채워지거나 box가 전부 비워지면 종료되는 프로그램을 작성하시오. [예시] vending = [7, 5, 3, 5, 3] box = [5, 5, 5, 5] vending = [10, 5, 3, 5, 3] box = [2, 5, 5, 5] vending = [10, 7, 3, 5, 3] box = [0, 5, 5, 5] vending = [10, 10, 3, 5, 3] box = [0, 2, 5, 5] vending = [10, 10, 5, 5, 3] box = [0, 0, 5, 5] vending = [10, 10, 10, 5, 3] box = [0, 0, 0, 5] vending = [10, 10, 10, 10, 3] box = [0, 0, 0, 0] [정답] vending = [10, 10, 10, 10, 3] box = [0, 0, 0, 0] */ let vending = [7, 5, 3, 5, 3]; let box = [5, 5, 5, 5]; </script>
Java
복사

해설

1. 상품수량 < 10 2. 추가해야할 상품 수량을 구한다. 10 - 7 = 33. 추가상품수량 <= 재고 상품 = 10 재고 - 추가상품수량 4. 추가상품수량 > 재고 상품 + 재고 재고 = 0 5. 상품수량 == 10 상품인덱스 + 1 6. 재고수량 == 0 재고인덱스 + 1
JavaScript
복사
<script> /* [문제] 철수는 자판기에 물건을 채우려고 한다. vending 배열은 현재 자판기에 남아있는 물건 개수이다. box배열은 자판기에 추가할 물건 개수이며, 5개씩 4줄 총 20개 여분이 있다. box의 앞에서부터 순차적으로 자판기에 물건을 채워 넣는다. 자판기는 한 줄당 최대 10개까지 채울 수 있다. 자판기가 전부 채워지거나 box가 전부 비워지면 종료되는 프로그램을 작성하시오. [예시] vending = [7, 5, 3, 5, 3] box = [5, 5, 5, 5] vending = [10, 5, 3, 5, 3] box = [2, 5, 5, 5] vending = [10, 7, 3, 5, 3] box = [0, 5, 5, 5] vending = [10, 10, 3, 5, 3] box = [0, 2, 5, 5] vending = [10, 10, 5, 5, 3] box = [0, 0, 5, 5] vending = [10, 10, 10, 5, 3] box = [0, 0, 0, 5] vending = [10, 10, 10, 10, 3] box = [0, 0, 0, 0] [정답] vending = [10, 10, 10, 10, 3] box = [0, 0, 0, 0] */ let vending = [7, 5, 3, 5, 3]; let box = [5, 5, 5, 5]; let vIndex = 0; let bIndex = 0; while(true) { if(vending[vIndex] < 10) { let plus = 10 - vending[vIndex]; if(plus <= box[bIndex]) { vending[vIndex] = 10; box[bIndex] -= plus; } else { vending[vIndex] += box[bIndex]; box[bIndex] = 0; } } if(box[bIndex] == 0) { bIndex += 1; } if(vending[vIndex] == 10) { vIndex += 1; } // 자판기가 전부 채워지거나 if(vIndex == vending.length) { break; } // box가 전부 비워지면 if(bIndex == box.length) { break; } } document.write("vending = " + vending + "<br>"); document.write("box = " + box); </script>
Java
복사