Test081~Test090
과제 Test087,Test088, Test089 -깃헙
/*
배열의 배열(다차원 배열)을 활용하여
다음과 같은 데이터를 요소로 취하는 배열(5x5)을 구성하고
그 결과를 출력하는 프로그램을 구현한다.
실행 예)
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
계속하려면 아무 키나 누르세요...
*/
public class hyodii081
{
public static void main(String[] args)
{
int[][] arr = new int[5][5];
int n = 1;
/*----------------------------------------------------------------------
for (int i=0; i<arr.length; i++)
{
for (int j=0; j<arr[i].length; j++)
{
arr[i][j] = n;
System.out.printf("%3d",arr[i][j]);
n++;
}System.out.println();
}
-------------------------------------------------------------------*/
for (int i=0; i<arr.length;i++ )
{
for (int j=0; j<arr[i].length;j++ )
{
arr[i][j] =n;
n++;
}
}
for (int i=0; i<arr.length;i++ )
{
for (int j=0; j<arr[i].length;j++ )
{
System.out.printf("%3d",arr[i][j]);
}
System.out.println();
}
}
}
/*
배열의 배열(다차원 배열)을 활용하여
다음과 같은 데이터를 요소로 취하는 배열(5x5)을 구성하고
그 결과를 출력하는 프로그램을 구현한다.
실행 예)
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
계속하려면 아무 키나 누르세요...
*/
public class Test081
{
public static void main(String[] args)
{
//배열의 배열 선언 및 메모리 할당
int[][]arr = new int[5][5];
int n = 1; //1 2 3 4 5 6...22 23 24 25 26
// 배열의 배열을 반복문의 중첩 구문을 활용하여 구조화
for (int i=0; i<arr.length; i++) // 웅 -> outer for문 -> 0 1 2 3 4
{
for (int j=0; j<arr[i].length; j++) // 쑝쑝쑝쑝쑝 -> inner for문 -> 01234 01234 01234 01234 01234
{
arr[i][j]=n;
n++;
System.out.println(+ i + " "+ j);
}
}
for (int i=0;i<arr.length ;i++ )
{
for (int j=0; j<arr[i].length;j++ )
System.out.printf("%3d",arr[i][j]);
System.out.println();
}
}
}
/* 실행결과
0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 2
2 3
2 4
3 0
3 1
3 2
3 3
3 4
4 0
4 1
4 2
4 3
4 4
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
계속하려면 아무 키나 누르십시오 . . .
*/
public class hyodii082
{
public static void main(String[] args)
{
int[][] a = new int[5][5];
for (int i=0; i<a.length; i++)
{
int n = i+1; //----check~!!!
for (int j=0; j<a[i].length;j++ )
{
a[i][j] = n;
n++;
}
}
for (int i=0; i<a.length; i++)
{
for (int j=0; j<a.length;j++ )
{
System.out.printf("%3d",a[i][j]);
}System.out.println();
}
}
}
/*
배열의 배열(다차원 배열)을 활용하여
다음과 같은 데이터를 요소로 취하는 배열을 구성하고
그 결과를 출력하는 프로그램을 구현한다.
n
↓
1 2 3 4 5 i=0 -> n이 1부터 시작 -> n+i
2 3 4 5 6 i=1 -> n이 2부터 시작 -> n+i
3 4 5 6 7 i=2 -> n이 3부터 시작 -> n+i
4 5 6 7 8 i=3 -> n이 4부터 시작 -> n+i
5 6 7 8 9 i=4 -> n이 5부터 시작 -> n+i
계속하려면 아무키나 누르세요...
-> 규칙을 찾으면 n은 i+1부터 시작!!
*/
public class Test082
{
public static void main(String[] args)
{
// 배열의 배열 선언 및 메모리 할당
int[][] arr = new int[5][5];
for (int i=0; i<arr.length; i++)
{
int n = i+1;
System.out.println("웅 "+n);
for (int j = 0; j<arr[i].length;j++)
{
System.out.println("쑝 "+n);
arr[i][j] = n;
n++;
}
}
for (int i=0; i<arr.length; i++)
{
for (int j=0; j<arr[i].length; j++)
{
System.out.printf("%2d",arr[i][j]);
}System.out.println();
}
}
}
/*
웅 1
쑝 1
쑝 2
쑝 3
쑝 4
쑝 5
웅 2
쑝 2
쑝 3
쑝 4
쑝 5
쑝 6
웅 3
쑝 3
쑝 4
쑝 5
쑝 6
쑝 7
웅 4
쑝 4
쑝 5
쑝 6
쑝 7
쑝 8
웅 5
쑝 5
쑝 6
쑝 7
쑝 8
쑝 9
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
계속하려면 아무 키나 누르십시오 . . .
*/
public class hyodii083
{
public static void main(String[] args)
{
int[][] arr = new int[5][5];
for (int i=0; i<arr.length; i++)
{
for (int c=i, n=1; n<=5; n++)
{
arr[i][c] = n;
c++;
if (c==5)
{
c=0;
}
}
}
/* 방법 2
int n = 1;
for (int i=0; i<arr.length; i++)
{
for (int j=0; j<arr[i].length; j++)
{
if(n==6)
{
n=1;
}
arr[i][j] = n;
n++;
System.out.print(n);
}System.out.println();
n--;
}
*/
for (int i=0; i<arr.length; i++)
{
for (int j=0; j<arr[i].length;j++ )
{
System.out.printf("%3d",arr[i][j]);
}
System.out.println();
}
}
}
/*
배열의 배열(다차원 배열)을 활용하여
다음과 같은 데이터를 요소로 취하는 배열을 구성하고
그 결과를 출력하는 프로그램을 구현한다.
n
↓
1 2 3 4 5 i=0 n=1 0부터 출발 [0][0] ~ [0][4]
5 1 2 3 4 i=1 n=1 1부터 출발 [1][1] ~ [1][4] [1][0]
4 5 1 2 3 i=2 n=1 2부터 출발 [2][2] ~ [2][4] [2][0]
3 4 5 1 2 i=3 n=1 3부터 출발 [3][3] ~ [3][4] [3][0]
2 3 4 5 1 i=4 n=1 4부터 출발 [4][4] ~ [4][4] [4][0]
-> 규칙 : n 이 5일때 0으로 초기화!!
계속하려면 아무키나 누르세요...
*/
public class Test083
{
public static void main(String[] args)
{
int[][] arr = new int[5][5];
for (int i=0; i<arr.length; i++) //웅~ 0 1 2 3 4
{
for (int c=i,n=1; n<=5; n++) //쑝~
{
arr[i][c] = n; // 00 -> 1 11-> 1 22 -> 1 33 -> 1 44 -> 1
// 01 -> 2 12-> 2 23 -> 2 34 -> 2 40 -> 2
// 02 -> 3 13-> 3 24 -> 3 35 -> 3 41 -> 3
// 03 -> 4 14-> 4 20 -> 4 31 -> 4 42 -> 4
// 04 -> 5 15-> 5 → 10 -> 5 21 -> 5 32 -> 5 43 -> 5
//15는 없으니까!
c++;
if (c==5)
{
c=0;
}
System.out.print("쑝 " + c);
}System.out.println();
}System.out.println();
for (int i=0; i<arr.length;i++ )
{
for (int j=0; j<arr[i].length; j++)
{
System.out.printf("%2d",arr[i][j]);
}System.out.println();
}
}
}
/*
쑝 1쑝 2쑝 3쑝 4쑝 0
쑝 2쑝 3쑝 4쑝 0쑝 1
쑝 3쑝 4쑝 0쑝 1쑝 2
쑝 4쑝 0쑝 1쑝 2쑝 3
쑝 0쑝 1쑝 2쑝 3쑝 4
1 2 3 4 5
5 1 2 3 4
4 5 1 2 3
3 4 5 1 2
2 3 4 5 1
계속하려면 아무 키나 누르십시오 . . .
*/
public class hyodii084
{
public static void main(String[] args)
{
int[][] arr = new int[4][5];
int n = 1;
for (int i=0; i<5; i++)
{
for (int j=0; j<4; j++)
{
if (i%2==0)
{
arr[j][i] = n;
}
else
arr[3-j][i]=n;
n++;
}
}
for (int i=0; i<arr.length; i++)
{
for (int j=0; j<arr[i].length; j++)
{
System.out.printf("%3d",arr[i][j]);
}System.out.println();
}
}
}
/*
배열의 배열(다차원 배열)을 활용하여
다음과 같은 데이터를 요소로 취하는 배열을 구성하고
그 결과를 출력하는 프로그램을 구현한다.
n
↓
1 8 9 16 17 00 01 02 03 04
2 7 10 15 18 10 11 12 13 14
3 6 11 14 19 20 21 22 23 24
4 5 12 13 20 30 31 32 33 34
-> 규칙 : 짤수 홀수 나눠서 생각
계속하려면 아무키나 누르세요...
*/
public class Test084
{
public static void main(String[] args)
{
//[함께 푼 풀이]
int[][] arr = new int[4][5];
// arr.length -> 4
int n =1;
for (int i=0; i<5; i++)
{
for(int j=0;j<4;j++)
{
n++;
if(i%2==0)
{
arr[j][i]=n; //00 -> 1
//10 -> 2
} //20 -> 3
//30 -> 4
else
{
arr[3-j][i]=n; //(3-0)1 -> 31 -> 5
//(3-1)1 -> 21 -> 6
} //(3-2)1 -> 11 -> 7
} //(3-3)1 -> 01 -> 8
}
/*----------------------------------------------------------------------
// 배열 선언 및 메모리 할당
int[][] arr = new int[4][5];
int n; //-- 배열에 넣을 수
int plusEve=1, plusOdd=7; //-- 짝수, 홀수일 때 각각 증가량
// 배열 각 요소에 값 담아내기
for (int i=0; i<4; i++)
{
n = i+1; //각 줄 첫번째에 넣을 수를 초기화
for (int j=0; j<5; j++)
{
if (j==0)
arr[i][j] = n;
else if (j%2==0)
{
n += plusEve;
arr[i][j] = n;
}
else
{
n += plusOdd;
arr[i][j] = n;
}
}
plusEve += 2; //각 줄에 따른 증가량 변화 적용
plusOdd -= 2;
}
-------------------------------------------------------------------*/
for (int i=0; i<arr.length; i++)
{
for (int j=0; j<arr[i].length; j++)
{
System.out.printf("%4d",arr[i][j]);
}System.out.println();
}
}
}
/*
1 8 9 16 17
2 7 10 15 18
3 6 11 14 19
4 5 12 13 20
계속하려면 아무 키나 누르십시오 . . .
*/
---+
public class hyodii085
{
public static void main(String[] args)
{
char[][] arr = new char[5][5];
char n = 'A';
/*----------------------------------------------------------------------
for (int i=0; i<5; i++)
{
for (int j=0; j<5; j++)
{
arr[4-j][i] = n;
n++;
}
}
-------------------------------------------------------------------*/
for (int i=0; i<5; i++)
{
for (int j=4; j>=0;j-- )
{
arr[j][i] = n;
n++;
}
}
for (int i=0; i<arr.length;i++ )
{
for (int j=0; j<arr[i].length; j++)
{
System.out.printf("%3c",arr[i][j]);
}System.out.println();
}
}
}
/*
배열의 배열(다차원 배열)을 활용하여
다음과 같은 데이터를 요소로 취하는 배열을 구성하고
그 결과를 출력하는 프로그램을 구현한다.
실행 예)
E J O T Y 00 01 02 03 04
D I N S X 10 11 12 13 14
C H M R W 20 21 22 23 24
B G L Q V 30 31 32 33 34
A F K P U 40 41 42 43 44
계속하려면 아무 키나 누르세요...
*/
public class Test085
{
public static void main(String[] args)
{
/*----------------------------------------------------------------------
char [][] arr = new char[5][5];
//char n = 65;
char n = 'A';
for (int i=0; i<5;i++)
{
for (int j=0; j<5; j++)
{
arr[4-j][i]=n;
n++;
}
}
-------------------------------------------------------------------*/
//[함께 푼 풀이 : 이번엔 j를 감소시킴]
char [][] arr = new char[5][5];
//char n = 65;
char n = 'A';
for (int i=0; i<5;i++)
{
for (int j=4; j>=0; j--)
{
arr[j][i]=n++;
}
}
for (int i=0; i<arr.length; i++)
{
for (int j=0; j<arr[i].length; j++)
{
System.out.printf("%2c",arr[i][j]);
}System.out.println();
}
}
}
/*
E J O T Y
D I N S X
C H M R W
B G L Q V
A F K P U
계속하려면 아무 키나 누르십시오 . . .
*/
public class hyodii086
{
public static void main(String[] args)
{
int[][] arr = new int[5][5];
int n = 0;
for (int i=0; i<4; i++)
{
for (int j=0; j<4; j++)
{
n++;
arr[i][j] = n;
arr[i][4] += arr[i][j];
arr[4][j] += arr[i][j];
arr[4][4] += arr[i][j];
}
}
for (int i=0; i<arr.length; i++)
{
for (int j=0; j<arr[i].length; j++)
{
System.out.printf("%4d",arr[i][j]);
}System.out.println();
}
}
}
/*
배열의 배열(다차원 배열)을 활용하여
다음과 같은 데이터를 요소로 취하는 배열을 구성하고
그 결과를 출력하는 프로그램을 구현한다.
실행 예)
1 2 3 4 10
5 6 7 8 26
9 10 11 12 42
13 14 15 16 58
28 32 36 40 136
계속하려면 아무 키나 누르세요...
1 2 3 4 1
5 6 7 8 0
9 10 11 12 0
13 14 15 16 0
1 0 0 0 1
-> 이 구조니까 1들어간 세곳에 식을 누적해야함
*/
public class Test086
{
public static void main(String[] args)
{
int[][] arr = new int[5][5];
//배열의 배열 각 방에 요소 채워넣기
int n=0;
for (int i=0; i<4; i++) //웅~ i = 0 1 2 3
{
for (int j=0; j<4; j++) //쑝~ j = 0 1 2 3
{
n++; // n -> 1 2 3 4 5 6 .... 16
arr[i][j] = n;
arr[i][4] += arr[i][j];
arr[4][j] += arr[i][j];
arr[4][4] += arr[i][j];
}
}
//배열의 배열 전체 요소 출력
for (int i=0; i<arr.length;i++)
{
for (int j=0;j<arr[i].length;j++)
{
System.out.printf("%4d",arr[i][j]);
}System.out.println();
}
}
}
/*
1 2 3 4 10
5 6 7 8 26
9 10 11 12 42
13 14 15 16 58
28 32 36 40 136
계속하려면 아무 키나 누르십시오 . . .
*/
mport java.util.Scanner;
import java.util.Random;
public class hyodii090
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int size;
System.out.print("발생시킬 난수의 갯수 입력 : ");
size = sc.nextInt();
int[] arr = new int[size];
Random rd = new Random();
for (int i=0; i<size; i++)
arr[i] = rd.nextInt(100)+1;
int max, min;
max=min=arr[0];
for (int i=1; i<arr.length; i++)
{
if(max<arr[i])
max = arr[i];
if(min>arr[i])
min = arr[i];
}
System.out.println("가장 큰 값 : " + max + "가장 작은 값 " + min);
}
}
/*
발생시킬 난수의 갯수 입력 : 10
가장 큰 값 : 94가장 작은 값 39
계속하려면 아무 키나 누르십시오 . . .
*/
import java.util.Scanner;
import java.util.Random;
public class Test090
{
public static void main(String[] args)
{
//Scanner 인스턴스 생성
Scanner sc = new Scanner(System.in);
//안내 메세지 출력
System.out.print("발생시킬 난수의 갯수 입력 :");
int size = sc.nextInt();
// size 변수에 담아낸 수 만큰의 배열방 만들기
// (배열 선언 및 메모리 할당)
int[] arr = new int[size];
// 무작위 숫자(난수)를 발생시키기 위해서는
// 난수 발생 전용 객체가 필요하다.
// -> 『java.util.random』
Random rd = new Random();
// ※Random 클래스의 『nextInt(int n)』메소드
// 0 ~ 매개변수로 넘겨받은 정수 n-1 까지의 수 중
// 무작위 정수(난수) 1개를 발생시킨다.
//테스트
//System.out.println("발생한 난수 : " + rd.nextInt(10));
// 0 ~ 9 까지의 무작위 정수 한 개~!!!
//System.out.println("발생한 난수 : " + rd.nextInt(5));
// 0 ~ 4 까지의 무작위 정수 한 개~!!!
// 1 ~ 100 까지의 무작위 정수 한 개
//System.out.println("발생한 난수 : " + rd.nextInt(100)+1);
//배열 구성
for (int i=0; i<size; i++) //size = 6 -> 0 1 2 3 4 5
arr[i] = rd.nextInt(100)+1;
// rd.nextInt(100) -> 0 ~ 99 까지의 무작위 정수 한 개 발생
// rd.nextInt(100)+1 -> 1 ~ 100 까지의 무작위 정수 한 개 발생
//테스트 -> 구성된 배열의 전체 요소 출력
/* ---- 최종결과 확인 후 주석 처리~!!!
for (int i=0;i<arr.length ; i++)
System.out.print(arr[i]+ " ");
//--==>> 58 99 76 57 65 69 17 74 83 75
//--==>> 98 69 49 86 7 17 70 87 26 40
//--==>> 52 55 65 94 45 13 95 76 13 70
System.out.println();
*/
// 가장 큰 값, 가장 작은 값 확인
int max, min; //-- 최대값, 최소값
max = min = arr[0];
for (int i=1; i<arr.length; i++) //0번째값을 비교하면 의미없이 한바퀴도는것 이미0번째 담았고 그다음부터 비교하면됨
{
if(max < arr[i])
max = arr[i];
if(min > arr[i])
min = arr[i];
}
// 결과 출력
System.out.printf("가장 큰 값 : %d, 가장 작은 값 : %d\n",max, min);
}
}
/* 실행 결과
발생시킬 난수의 갯수 입력 :10
가장 큰 값 : 84, 가장 작은 값 : 21
계속하려면 아무 키나 누르십시오 . . .
*/
/* 실행 결과(주석처리 전)
발생시킬 난수의 갯수 입력 :10
76 77 87 79 22 33 2 100 37 24
가장 큰 값 : 100, 가장 작은 값 : 2
계속하려면 아무 키나 누르십시오 . . .
발생시킬 난수의 갯수 입력 :10
7 35 81 40 79 12 4 89 64 35
가장 큰 값 : 89, 가장 작은 값 : 4
계속하려면 아무 키나 누르십시오 . . .
발생시킬 난수의 갯수 입력 :10
95 68 94 96 3 49 91 96 71 47
가장 큰 값 : 96, 가장 작은 값 : 3
계속하려면 아무 키나 누르십시오 . . .
*/