과거⚰️
2차원배열 이론 || 기본 1 2 3
아무루
2020. 11. 6. 17:45
package day030;
public class Day030012차원배열이론 {
public static void main(String[] args) {
int[][] arr = new int[3][2];
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
}
System.out.println(arr.length);
System.out.println(arr[0].length);
System.out.println(arr[1].length);
System.out.println(arr[2].length);
System.out.println(arr[0]); // [I@7852e922
System.out.println(arr[0][0]);
System.out.println(arr[0][1]);
System.out.println(arr[1]); // [I@4e25154f
System.out.println(arr[1][0]);
System.out.println(arr[1][1]);
System.out.println(arr[2]); // [I@70dea4e
System.out.println(arr[2][0]);
System.out.println(arr[2][1]);
}
}
package day030;
public class Day030032차원배열기본1문제 {
public static void main(String[] args) {
int[][] arr = new int[3][3];
int k = 1;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
arr[i][j] = 10 * k;
k += 1;
}
}
// 문제 1) 전체 합 출력
// 정답 1) 450
int tot = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
tot=tot+arr[i][j];
}
}
System.out.println("1. ");
System.out.println(tot);
// 문제 2) 4의 배수만 출력
// 정답 2) 20 40 60 80
System.out.println("2. ");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if(arr[i][j]%4==0){
System.out.println(arr[i][j]);
}
}
}
// 문제 3) 4의 배수의 합 출력
// 정답 3) 200
System.out.println("3. ");
tot=0;
int cnt = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if(arr[i][j]%4==0){
tot = arr[i][j]+tot;
cnt++;
}
}
}
System.out.println(tot);
// 문제 4) 4의 배수의 개수 출력
// 정답 4) 4
System.out.println("4. ");
System.out.println(cnt);
}
}
package day030;
import java.util.Scanner;
public class Day030042차원배열기본2문제 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] arr = new int[3][3];
int k = 1;
for(int i=0; i<3; i++) {
for(int j=0; j<3; j++) {
arr[i][j] = 10 * k;
k += 1;
}
}
// 문제 1) 인덱스 2개를 입력받아 값 출력
// 예 1) 인덱스1 입력 : 1 인덱스2 입력 : 2
// 값 출력 : 60
System.out.println("index 1 ");
int in1 = sc.nextInt();
System.out.println("index 2 ");
int in2 = sc.nextInt();
System.out.println(arr[in1][in2]);
// 문제 2) 값을 입력받아 인덱스 2개 출력
// 예 2) 값 입력 : 60
// 인덱스1 출력 : 1 인덱스2 출력 : 2
System.out.println("enter it value");
int value = sc.nextInt();
for(int i=0; i<3; i++) {
for(int j=0; j<3; j++) {
if(value== arr[i][j]){
System.out.println(i);
System.out.println(j);
}
}
}
// 문제 3) 가장 큰 값의 인덱스 2개 출력
// 정답 3) 2 2
int max = 0;
for(int i=0; i<3; i++) {
for (int j = 0; j < 3; j++) {
if(arr[i][j]>=max){
max=arr[i][j];
}
}
}
System.out.println(max);
// 문제 4) 값 2개를 입력받아 값 교체
System.out.println("enter value");
int v = sc.nextInt();
System.out.println("enter value");
int v1 = sc.nextInt();
int x = 0;
int y = 0;
int x1 = 0;
int y1 = 0;
for(int i=0; i<3; i++) {
for (int j = 0; j < 3; j++) {
if(arr[i][j]==v){
x=i;
y=j;
}
}
}
for(int i=0; i<3; i++) {
for (int j = 0; j < 3; j++) {
if(arr[i][j]==v1){
x1=i;
y1=j;
}
}
}
int temp = arr[x][y];
arr[x][y]=arr[x1][y1];
arr[x1][y1]=temp;
for(int i=0; i<3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
package day030;
public class Day030052차원배열기본3문제 {
public static void main(String[] args) {
int[][] arr = {
{101, 102, 103, 104},
{201, 202, 203, 204},
{301, 302, 303, 304}
};
int[] garo = new int[3];
int[] sero = new int[4];
// 문제 1) 가로 합 출력
// 정답 1) 410, 810, 1210
for(int i=0; i< arr.length; i++){
for(int j=0; j<arr[i].length; j++){
garo[i]=garo[i]+arr[i][j];
}
}
// 문제 2) 세로 합 출력
// 정답 2) 603, 606, 609, 612
for(int i=0; i< 4; i++){
for(int j = 0; 3 > j; j++){
sero[i]=sero[i]+arr[j][i];
}
}
for(int i=0; i< 3; i++){
System.out.print(garo[i]+" ");
}
System.out.println();
for(int i=0; i< 4; i++){
System.out.print(sero[i]+" ");
}
System.out.println();
}
}