라라리라
2023.08.05 / Step 8 [이차배열] - 코딩 17 일차 본문
이차배열3_개념01_가로세로.html
<script>
/*
[문제]
arr배열의 가로 합을 garo배열에 추가하시오.
arr배열의 세로 합을 sero배열에 추가하시오.
[정답]
garo = [410, 710, 1210]
sero = [503, 606, 609, 612]
*/
let arr = [
[101, 102, 103, 104],
[101, 202, 203, 204],
[301, 302, 303, 304]
]
let garo = [];
let sero = [];
for(let i = 0 ; i < arr.length; i ++){
let sum = 0;
for(let j = 0 ; j < arr[i].length; j++){
sum+= arr[i][j];
}
garo.push(sum);
}
document.write("garo = " + garo + "<br>");
for(let i = 0; i < arr[0].length; i++){
let sum = 0;
for(let j = 0; j < arr.length; j++){
sum+= arr[j][i];
}
sero.push(sum);
}
document.write("sero = " + sero + "<br>");
</script>
이차배열3_개념02_세로출력.html
<script>
/*
[문제]
arr배열을 각 세로별로 출력해보시오.
[정답]
[1] 0 0 3 1 4 2
[2] 0 2 1 4 1 1
[3] 0 0 3 2 4 4
[4] 0 0 0 0 0 3
[5] 3 3 1 2 4 3
*/
let arr = [
[0,0,0,0,3],
[0,2,0,0,3],
[3,1,3,0,1],
[1,4,2,0,2],
[4,1,4,0,4],
[2,1,4,3,3]
];
for(let i = 0; i < arr[0].length ; i++){
for(let j = 0 ; j < arr.length ; j++){
document.write(arr[j][i] + " " );
}
document.write("<br>");
}
</script>
이차배열3_개념03_길이다른이차원.html
<script>
/*
[개념] 길이가 다른 이차원 배열
이차원 배열은 길이를 다르게 구성할 수도 있다.
*/
let a = [
[1, 2, 3, 4],
[1, 2],
[1, 2, 3, 4, 5]
];
for(let i=0; i<a.length; i++) {
document.write(a[i] + "<br>");
}
document.write("---------<br>");
let b = [];
let c = [1, 2, 3];
let d = [1, 2];
let e = [1, 2, 3, 4, 5];
b.push(c);
b.push(d);
b.push(e);
for(let i=0; i<b.length; i++) {
document.write(b[i] + "<br>");
}
document.write("---------<br>");
let f = [];
for(let i=0; i<3; i++) {
let r = Math.floor(Math.random() * 9) + 1;
let temp = [];
for(let j=0; j<r; j++) {
temp.push(j);
}
f.push(temp);
}
for(let i=0; i<f.length; i++) {
document.write(f[i] + "<br>");
}
</script>
이차배열3_문제01_랜덤이차원.html
<script>
/*
[문제]
[1] 빈 배열을 만들어 랜덤으로 숫자(1~5)를 저장하고,
그 숫자만큼 연속으로 추가하시오.
[2] 위 규칙을 다섯 번 반복하여 이차원 배열로 만들어보시오.
[예시]
[3, 3, 3]
[4, 4, 4, 4]
[2, 2]
[4, 4, 4, 4]
[4, 4, 4, 4]
*/
let arr = [];
for(let i = 0 ; i < 5; i ++){
let r = Math.floor(Math.random() * 5) + 1;
let temp = [];
for(let j =0 ; j < r; j++){
temp.push(r);
}
arr.push(temp);
document.write(arr[i] + "<br>");
}
</script>
이차배열3_문제02_약수이차원.html
<script>
/*
[문제]
랜덤(2~100) 숫자를 저장해 그 수의 약수를 모두 arr배열에 저장한다.
위 규칙을 다섯 번 반복하여 이차원 배열을 만드시오.
[정답]
27 [1, 3, 9, 27]
72 [1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 36, 72]
76 [1, 2, 4, 19, 38, 76]
94 [1, 2, 47, 94]
91 [1, 7, 13, 91]
*/
let arr = [];
for(let i = 0; i < 5; i++){
let r = Math.floor(Math.random() * 99) + 2;
let temp = [];
document.write("r = " + r)
for(let j = 1; j <= r; j++){
if(r % j == 0){
temp.push(j);
}
}
arr.push(temp);
document.write( " [ " + arr[i] + " ]<br>");
}
</script>
이차배열3_문제03_반으로합치기.html
<script>
/*
[문제]
a배열의 값들을 두 개씩 더해서 하나로 합친다.
각 가로를 기준으로 보았을 때,
0번과 1번을 합치고,
2번과 3번을 합치고,
4번과 5번을 합친다.
위와 같은 방법으로 남은 두 줄도 반복해
b배열에 추가하시오.
[예시]
[ 3, 1, 2, 5, 6, 1] : [4,7,7]
[ 2, 5, 1, 3, 5, 4] : [7,4,9]
[ 1, 2, 1, 3, 9, 5] : [3,4,14]
[정답]
[4, 7, 7]
[7, 4, 9]
[3, 4, 14]
*/
let a = [
[3, 1, 2, 5, 6 ,1],
[2, 5, 1, 3, 5 ,4],
[1, 2, 1, 3, 9 ,5]
];
let b = [];
for(let i = 0; i < a.length; i++){
let temp = [];
for(let j = 0 ; j < a[i].length; j+=2){
temp.push(a[i][j] + a[i][j+1]);
}
b.push(temp);
document.write(b[i] + "<br>");
}
</script>
이차배열3_문제04_세로합.html
<script>
/*
[문제]
arr배열의 각 세로 합을 total배열에 추가하시오.
[정답]
total = [10, 9, 13, 3, 16]
*/
let arr = [
[0,0,0,0,3],
[0,2,0,0,3],
[3,1,3,0,1],
[1,4,2,0,2],
[4,1,4,0,4],
[2,1,4,3,3],
];
let total = [];
for(let i = 0; i < arr[0].length; i ++){
let sum = 0;
for(let j = 0; j < arr.length; j++){
sum += arr[j][i]
}
total.push(sum);
}
document.write("total = " + total + "<br>");
</script>
이차배열3_문제05_세로그래프.html
<script>
/*
[문제]
data배열의 각 숫자만큼 graph에 숫자1을
세로로 위에서 아래로 채우시오.
[정답]
[1,1,1,1,1,1]
[1,1,1,1,1,1]
[1,1,1,0,1,1]
[0,1,1,0,1,1]
[0,1,1,0,1,0]
[0,1,0,0,1,0]
[0,1,0,0,1,0]
[0,0,0,0,1,0]
[0,0,0,0,1,0]
[0,0,0,0,1,0]
*/
let data = [3, 7, 5, 2, 10, 4];
let graph = [
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]
];
for(let i = 0; i < graph[0].length; i++){
for(let j =0; j < data[i]; j++){
graph[j][i] = 1;
}
}
for(let i = 0 ; i < graph.length ; i++){
document.write(graph[i] + "<br>");
}
</script>
이차배열3_문제07_지렁이.html
<script>
/*
[문제]
랜덤으로 (1~4)를 저장하고
아래와 같은 경우로 배열에 저장하시오.
[정답]
r = 1
123 00 01 02
654 12 11 10
789 20 21 22
r = 2
761 20 12 00 02 21 00
852 21 11 01 12 11 10
943 22 10 02 22 01 20
r = 3
987 22 21 20
456 10 11 12
321 02 01 00
r = 4
349 02 10 22
258 01 11 21
167 00 12 20
*/
let snake = [
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
];
let r = Math.floor(Math.random() * 4) + 1;
r = 1;
document.write("r = " + r + "<br>");
if(r == 1){
let num = 1;
let turn = true;
for(let i = 0; i < 3; i++){
for(let j = 0 ; j < 3; j ++){
if(turn == true){
snake[i][j] = num;
num++;
}
else if(turn == false) {
snake[i][2 -j] = num;
num++;
}
turn = !turn;
}
}
for(let i = 0; i < 3; i++){
document.write(snake[i] + "<br>");
}
}
if(r == 2){
let turn = true;
let num = 1;
for(let i = 0; i < 3; i ++){
for(let j = 0 ; j< 3; j++){
if(turn == true){
snake[j][2 -i] = num;
num ++;
}else {
snake[2- j][2 - i] = num;
num++;
}
}
turn = !turn;
}
for(let i = 0; i< 3; i++){
document.write(snake[i] + "<br>");
}
}
if(r == 3){
let num = 1;
let turn = true;
for(let i =0; i < snake.length; i++){
for(let j = 0; j < snake[i].length; j++){
if(turn == true){
snake[2-i][2-j] = num;
num++;
}
else{
snake[2-i][j] = num;
num++;
}
}
turn = !turn;
}
for(let i = 0; i < snake.length; i++){
document.write(snake[i] + "<br>");
}
}
if(r == 4){
let num = 1;
let turn = true;
for(let i = 0 ; i < 3; i ++){
for(let j = 0; j < 3; j++){
if(turn){
snake[2 -j][i] = num;
num++;
}
else {
snake[j][i] = num;
num++;
}
}
turn = !turn;
}
for(let i = 0; i < snake.length; i ++){
document.write(snake[i] + "<br>");
}
}
</script>
'코딩 > 2023 JavaScript Console' 카테고리의 다른 글
2023.08.07 / Step 8 [이차배열] - 코딩 19 일차 (0) | 2023.08.07 |
---|---|
2023.08.06 / Step 8 [이차배열] - 코딩 18 일차 (0) | 2023.08.06 |
2023.08.04 / Step 8 [이차배열] - 코딩 16 일차 (0) | 2023.08.04 |
2023.08.03 / Step 7 [이차반복문] - 코딩 15 일차 (0) | 2023.08.03 |
2023.08.02 / Step 7 [이차반복문] - 코딩 14 일차 (0) | 2023.08.02 |