영상
문제
<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 = 3개
3. 추가상품수량 <= 재고
상품 = 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
복사