Search

이차배열4_문제05_자판기

대분류
STEP08 이차배열
문제 난이도
LV08
소분류
이차배열4_문제

영상

문제

<script> /* [문제] 철수는 편의점에서 아르바이트하고 있다. vending은 음료수 냉장고 물품 개수 상태이다. 숫자는 아이템 번호이고 0은 비어있는 것을 뜻한다. 냉장고는 최대 10개까지 저장할 수 있다. 그리고 같은 종류의 아이템으로만 저장하며, 세로로 저장한다. box리스트는 현재 아이템 창고 재고를 표시한다. 왼쪽숫자는 아이템번호이고 오른쪽 숫자는 개수이다. 예를 들어 [1,4]는 1번 아이템을 뜻하고, 남은개수는 4개를 뜻한다. box에 있는 상품들로 채울 수 있을 만큼 채우고 최종상태를 출력하시오. [예시] 1번 아이템은 4개 밖에 재고가 없다. [vending] [0,0,0,0,5,0], [0,0,0,0,5,0], [1,0,0,0,5,0], [1,0,0,0,5,6], [1,2,0,0,5,6], [1,2,3,0,5,6], [1,2,3,0,5,6], [1,2,3,4,5,6], [1,2,3,4,5,6], [1,2,3,4,5,6] [box] [1,0], [2,8], [3,3], [4,4], [5,8], [6,9] 남은 아이템도 채워보자. [정답] [0, 2, 0, 0, 5, 6] [0, 2, 0, 0, 5, 6] [1, 2, 3, 0, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 0] [2, 4] [3, 0] [4, 0] [5, 8] [6, 6] */ let vending = [ [0, 0, 0, 0, 5, 0], [0, 0, 0, 0, 5, 0], [0, 0, 0, 0, 5, 0], [0, 0, 0, 0, 5, 6], [0, 2, 0, 0, 5, 6], [0, 2, 3, 0, 5, 6], [1, 2, 3, 0, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6] ]; let box = [ [1, 4], [2, 8], [3, 3], [4, 4], [5, 8], [6, 9] ]; </script>
Java
복사

해설

<script> /* [문제] 철수는 편의점에서 아르바이트하고 있다. vending은 음료수 냉장고 물품 개수 상태이다. 숫자는 아이템 번호이고 0은 비어있는 것을 뜻한다. 냉장고는 최대 10개까지 저장할 수 있다. 그리고 같은 종류의 아이템으로만 저장하며, 세로로 저장한다. box리스트는 현재 아이템 창고 재고를 표시한다. 왼쪽숫자는 아이템번호이고 오른쪽 숫자는 개수이다. 예를 들어 [1,4]는 1번 아이템을 뜻하고, 남은개수는 4개를 뜻한다. box에 있는 상품들로 채울 수 있을 만큼 채우고 최종상태를 출력하시오. [예시] 1번 아이템은 4개 밖에 재고가 없다. [vending] [0,0,0,0,5,0], [0,0,0,0,5,0], [1,0,0,0,5,0], [1,0,0,0,5,6], [1,2,0,0,5,6], [1,2,3,0,5,6], [1,2,3,0,5,6], [1,2,3,4,5,6], [1,2,3,4,5,6], [1,2,3,4,5,6] [box] [1,0], [2,8], [3,3], [4,4], [5,8], [6,9] 남은 아이템도 채워보자. [정답] [0, 2, 0, 0, 5, 6] [0, 2, 0, 0, 5, 6] [1, 2, 3, 0, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 0] [2, 4] [3, 0] [4, 0] [5, 8] [6, 6] */ let vending = [ [0, 0, 0, 0, 5, 0], [0, 0, 0, 0, 5, 0], [0, 0, 0, 0, 5, 0], [0, 0, 0, 0, 5, 6], [0, 2, 0, 0, 5, 6], [0, 2, 3, 0, 5, 6], [1, 2, 3, 0, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6] ]; let box = [ [1, 4], [2, 8], [3, 3], [4, 4], [5, 8], [6, 9] ]; for(let i=0; i<box.length; i++) { let index = -1; for(let j=vending.length - 1; j>=0; j--) { if(vending[j][i] == 0) { index = j; break; } } document.write(index + "<br>"); if(index != -1) { let count = box[i][1]; for(let j=0; j<count; j++) { vending[index][i] = box[i][0]; box[i][1] -= 1; if(box[i][1] == 0) { break; } if(index == 0) { break; } index -= 1; } } } for(let i=0; i<vending.length; i++) { document.write(vending[i] + "<br>"); } document.write("<br>"); for(let i=0; i<box.length; i++) { document.write(box[i] + "<br>"); } </script>
Java
복사