라라리라
2023.08.06 / Step 8 [이차배열] - 코딩 18 일차 본문
이차배열4_개념01_비교일차원.html
<script>
/*
[문제]
a배열과 b배열을 비교해서 서로 겹치는 값을 0으로 변경하시오.
[정답]
a = [
[0, 0, 0],
[0, 7, 2]
]
b = [0, 6, 0, 0, 0]
*/
let a = [
[1, 4, 3],
[5, 7, 2]
];
let b = [4, 6, 3, 1, 5];
for(let i = 0 ; i < b.length; i ++){
for(let k = 0; k < a.length; k++){
for(let j = 0; j < a[k].length; j++){
if(b[i] == a[k][j]){
a[k][j] = 0;
b[i] = 0;
}
}
}
}
for(let i = 0 ; i < a.length; i++){
document.write(a[i] + "<br>");
}
document.write("<br>");
document.write(b);
</script>
이차배열4_개념02_비교이차원.html
<script>
/*
[문제]
a배열과 b배열을 비교해서 서로 겹치는 값을 0으로 변경하시오.
[정답]
a = [
[0, 4, 0],
[0, 0, 0]
]
b = [
[0, 0, 0],
[0, 0, 8]
]
*/
let a = [
[1, 4, 3],
[5, 7, 2]
];
let b = [
[5, 3, 2],
[1, 7, 8]
];
for(let i = 0; i < a.length; i ++){
for(let j = 0; j < a[i].length; j++){
for(let k = 0; k < b.length; k++){
for(let n = 0; n < b[k].length; n++){
if(a[i][j] == b[k][n]){
a[i][j] = 0;
b[k][n] = 0;
}
}
}
}
}
for(let i = 0 ; i < a.length; i++){
document.write(a[i] + "<br>");
}
document.write("<br>==============<br>")
for(let i = 0 ; i < a.length; i++){
document.write(b[i] + "<br>");
}
</script>
이차배열4_개념03_밀기.html
<script>
/*
[문제]
랜덤으로 dir배열의 값을 d에 저장한다.
d값의 방향으로 arr배열의 모든값이 한칸씩 이동한다.
밀린값은 반대편으로 저장된다.
[예시1]
d = "북"
[결과1]
[1004,1005,1006,1007]
[1008,1009,1010,1011]
[1000,1001,1002,1003]
[예시2]
d = "동"
[결과2]
[1003,1000,1001,1002]
[1007,1004,1005,1006]
[1011,1008,1009,1010]
[예시3]
d = "남"
[결과3]
[1008,1009,1010,1011]
[1000,1001,1002,1003]
[1004,1005,1006,1007]
[예시4]
d = "서"
[결과5]
[1001,1002,1003,1000]
[1005,1006,1007,1004]
[1009,1010,1011,1008]
*/
let dir = ["북", "동", "남", "서"];
let d = "";
let arr = [
[1000, 1001, 1002, 1003],
[1004, 1005, 1006, 1007],
[1008, 1009, 1010, 1011]
];
d = "북"
if(d == "북"){
let temp = [0, 0, 0, 0];
for(let i =0; i < arr.length - 1; i ++){
for(let j = 0; j < arr[i].length; j++){
temp[i][j] = arr[i][j];
arr[i][j] = arr[i+1][j];
arr[i+1][j] = temp[i][j];
}
}
}
for(let i =0 ; i < arr.length; i++){
document.write(arr[i] + "<br>");
}
if(d == "동"){
}
if(d == "남"){
}
if(d == "서"){
}
</script>
이차배열4_문제01_비교이차원중복.html
<script>
/*
[문제]
a배열과 b배열을 비교해서
서로 겹치는 값을 0으로 변경하시오.
중복되는 값은 전부 0으로 변경하시오.
[정답]
a = [
[0, 4, 0],
[0, 0, 0],
[0, 4, 0]
]
b = [
[0, 0, 0],
[0, 0, 8],
[6, 0, 0]
]
*/
let a = [
[1, 4, 3],
[5, 7, 2],
[5, 4, 1]
];
let b = [
[5, 3, 2],
[1, 7, 8],
[6, 5, 1]
];
for(let i = 0; i < a.length; i++){
for(let j = 0; j < a.length; j++){
for(let k = 0; k < b.length; k++){
for(let l = 0; l < b.length; l++){
if(a[i][j] == b[k][l]){
a[i][j] = 0;
b[k][l] = 0;
}
}
}
}
}
for(let i = 0; i < a.length; i++){
document.write(a[i] + "<br>");
}
document.write("<br>");
for(let i = 0; i < b.length; i++){
document.write(b[i] + "<br>");
}
</script>
이차배열4_문제02_상점주문.html
<script>
/*
[문제]
info는 온라인 쇼핑몰 상품 정보이다.
가로를 기준으로 상품번호와 가격이다.
예를 들어 [1001,500]은 1001은 상품 번호이고 500은 상품 가격이다.
order는 오늘 주문 목록이다.
예를들어 [1001,3]은 1001상품을 3개 주문한 것이다.
count에 오늘 판매한 상품별 개수와 총 금액을 저장 후 출력하시오.
[정답]
[1001, 8, 4000]
[1002, 5, 13500]
[1003, 1, 1200]
[1004, 2, 1600]
[1005, 5, 11000]
*/
let info = [
[1001, 500],
[1002,2700],
[1003,1200],
[1004, 800],
[1005,2200]
];
let order = [
[1001, 3],
[1005, 5],
[1003, 1],
[1001, 4],
[1004, 2],
[1002, 3],
[1001, 1],
[1002, 2]
];
let count = [
[1001, 0, 0],
[1002, 0, 0],
[1003, 0, 0],
[1004, 0, 0],
[1005, 0, 0]
];
for(let i = 0; i < count.length; i++){
for(let j = 0; j < order.length; j++){
if(count[i][0] == order[j][0]){
count[i][1] += order[j][1];
count[i][2] += order[j][1] * info[i][1];
}
}
}
for(let i = 0; i < count.length; i++){
document.write(count[i] + "<br>");
}
</script>
이차배열4_문제03_압축풀기.html
<script>
/*
[문제]
a배열은 원래 한 줄로 있던 데이터를 압축한 데이터이다.
가로를 기준으로 왼쪽 숫자는 저장할 숫자이고
오른쪽 숫자는 저장할 숫자의 개수이다.
예를 들어 첫 번째 줄의 [3,5] 는 33333을 뜻한다.
아래 a배열의 모든 압축을 풀어 b배열에 저장하시오.
[정답]
b = [3,3,3,3,3,5,5,5,5,5,5,2,4,4,4]
*/
let a = [
[3, 5],
[5, 6],
[2, 1],
[4, 3]
];
let b = [];
for(let i = 0; i < a.length; i++){
for(let j = 0; j < a[i][1]; j++){
b.push(a[i][0]);
}
}
document.write("b = " + b);
</script>
이차배열4_문제04_압축하기.html
<script>
/*
[문제]
a배열은 압축하기 전 데이터이다.
다음데이터를 압축 하시오.
압축 기준은 데이터와 개수로 저장한다.
예를 들어 3이 연속으로 5개이므로
b = [[3,5]]
다시 5가 6개이므로
b = [[3,5],[5,6]]
위와 같이 마지막까지 반복하시오.
[정답]
[3, 5]
[5, 6]
[2, 1]
[4, 1]
[2, 2]
*/
let a = [3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, 2, 4, 2, 2];
let b = [];
let num = a[0];
let count = 1;
let i = 0;
for(let i = 0; i < a.length; i++){
if(num == a[i]){
count++;
} else {
let temp = [];
temp.push(num);
temp.push(count);
b.push(temp);
num = a[i];
count = 0;
}
if(i == a.length - 1){
let temp = [];
temp.push(num);
temp.push(count);
b.push(temp);
}
}
for(let i = 0 ; i < b.length; i++){
document.write(b[i] + "<br>");
}
</script>
이차배열4_문제05_자판기.html
<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 < vending[0].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 = " + index + "<br>");
if(index != -1){
let temp = box[i][1];
for(let j = 0; j < temp; j++){
vending[index][i] = box[i][0];
box[i][1]--;
if(box[i][1] == 0){
break;
}
if(index == 0){
break;
}
index--;
}
}
}
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>
'코딩 > 2023 JavaScript Console' 카테고리의 다른 글
2023.08.14 / Step 9 [문자열] - 코딩 26 일차 (0) | 2023.08.14 |
---|---|
2023.08.07 / Step 8 [이차배열] - 코딩 19 일차 (0) | 2023.08.07 |
2023.08.05 / Step 8 [이차배열] - 코딩 17 일차 (0) | 2023.08.05 |
2023.08.04 / Step 8 [이차배열] - 코딩 16 일차 (0) | 2023.08.04 |
2023.08.03 / Step 7 [이차반복문] - 코딩 15 일차 (0) | 2023.08.03 |