배열에서 최소값, 최대값을 출력하세요
최소값 : min, 최대값 : max
int[] arr= {80, 40, 70, 20, 30};
int min=100;
int max=0;
for (int i=0;i<arr.length;i++) {
if(min>arr[i]) min=arr[i];
if(max<arr[i]) max=arr[i];
}
System.out.println("min:"+min);
System.out.println("max:"+max);
결과
min:20
max:80
강사님의 코드
int[] arr= {80, 40, 70, 20, 30};
int min=arr[0];
int max=arr[0];
for (int i=0;i<arr.length;i++) {
if(min>arr[i]) {
min=arr[i];
}
if(max<arr[i]) {
max=arr[i];
}
}
System.out.println("min : "+min);
System.out.println("max : "+max);
결과
min : 20
max : 80
min, max 초기값을 arr[0] 으로 줌으로써 그 안의 값들끼리 비교하게 만든다.
배열에서의 값의 위치를 알아보기
int[] s= {0,10,20,30,40,50,60,70,80,90,100};
int value,index=-1;
Scanner scan=new Scanner(System.in);
System.out.println("탐색할 값을 입력하세요");
value=scan.nextInt();
for (int i=0;i<s.length;i++) {
if(s[i]==value) {
index=i;
}
}
System.out.println(value+"값은 "+index+" 위치에 있습니다.");
결과
행과 열로 이루어진 배열
행 : 가로줄 (x축)
열 : 세로줄 (y축)
x축만 있는 것이 앞서 배운 배열 (1차원 배열)
z축까지 있다면 3차원 배열이 된다.
=> 행만 있는 2차원 배열은 가능, 열만 있는 2차원 배열은 불가능
=> 따라서 앞의 대괄호에 숫자만 있는 배열은 가능, 뒤의 대괄호에 숫자만 있는 배열은 불가능
2차원 배열 선언
int[][] arr=new int[4][3];
2차원 배열 선언과 동시에 초기화
int[][] arr= {
{10,20,30},
{40,50,60},
{70,80,90},
{100,110,120},
};
2차원 데이터 입력
arr[0][0]=10; arr[0][1]=20; arr[0][2]=30;
arr[1][0]=40; arr[1][1]=50; arr[1][2]=60;
arr[2][0]=70; arr[2][1]=80; arr[2][2]=90;
arr[3][0]=100; arr[3][1]=110; arr[3][2]=120;
System.out.println("2차원 배열의 행의 길이: "+arr.length);
System.out.println("2차원 배열의 열의 길이: "+arr[0].length);
결과
2차원 배열의 행의 길이: 4
2차원 배열의 열의 길이: 3
arr.length : 행의 길이
arr[i].length : 열의 길이
2차원 배열 for문으로 출력
for (int i = 0; i < arr.length; i++) {
System.out.print("[ ");
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.print("]");
System.out.println();
결과
[ 10 20 30 ]
[ 40 50 60 ]
[ 70 80 90 ]
[ 100 110 120 ]
arr 5,4
값이 1씩 증가하게 데이터 주입 후 출력
필요한 변수 추가
int arr[][]=new int[5][4];
int a=0;
for (int i = 0; i < arr.length; i++) {
System.out.print("[ ");
for (int j = 0; j < arr[i].length; j++) {
arr[i][j]=a;
a++;
System.out.print(arr[i][j]+" ");
}
System.out.print("]");
System.out.println();
}
결과
[ 0 1 2 3 ]
[ 4 5 6 7 ]
[ 8 9 10 11 ]
[ 12 13 14 15 ]
[ 16 17 18 19 ]
강사님의 코드
int arr[][]=new int[5][4];
int cnt=1;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j]=cnt++;
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
결과
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
Regged : 불규칙한, 울퉁불퉁한
불규칙한 배열
int[][] arr=new int[5][];
칼럼의 길이를 불규칙하게 선언할 수 있음.
arr[0]=new int[1];
arr[1]=new int[2];
arr[2]=new int[3];
arr[3]=new int[4];
arr[4]=new int[5];
입력
int cnt=1;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j]=cnt++;
}
}
출력
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
결과
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
2차원배열에서 열의 개수를 불규칙하게 설정할 수 있다.
오늘 자바는 여기까지
리눅스(VMware) - root 사용자로 로그인 - terminal 실행
ls : dir 내부 목록 명령어
ls -l : 목록 세부 확인 명령어
ll : ls -l 과 같은 기능
ls -al : . 과 .. 까지 모두 보여주는 명령어
rm 파일명 : 파일 삭제 명령어
rm -rf 파일명 : 강제 삭제 명령어
(명령상태)
:1,2 co 3
line 1과 2의 내용을 line 3으로 복사
:1,2 m 3
line 1과 2의 내용을 line 3위로 이동
x : delete 와 같은 역할
u : 실행취소
yy : line 복사
p : 붙여넣기
dw : 단어 단위로 삭제
dd : line 삭제
5x : 5글자 삭제
3x : 3글자 삭제
Linux 미션
file 이름 : ArrayRandom.java
5 x 4 배열
배열이름 : arr
랜덤으로 값 초기화 (범위 : 100~200)
출력내용 캡쳐해서 단톡에 올리기
출력 형식은 강의 내에서 연습했던 대로
내가 짠 코드
출력
Windows 미션
file 이름 : DiceMission.java
주사위를 1000번 이상 굴려서
각 면이 나오는 횟수를 출력하세요.출력 내용
1면 : n 회
2면 : n 회
.
.
.
6면 : n 회
메일로 제출
메일 제목 : 주사위면수_홍길동
소스파일을 텍스트 붙여넣기로 제출하세요.
내가 생각한 알고리즘
내가 짠 코드
Random random=new Random();
int arr[]=new int[6];
int sum=0;
for (int i = 0; i < 1000; i++) {
int dice=random.nextInt(6)+1;
if (dice==1) arr[0]+=1;
else if (dice==2) arr[1]+=1;
else if (dice==3) arr[2]+=1;
else if (dice==4) arr[3]+=1;
else if (dice==5) arr[4]+=1;
else if (dice==6) arr[5]+=1;
}
for (int i = 0; i < arr.length; i++) {
System.out.println((i+1)+"면 : "+arr[i]+"회");
sum+=arr[i];
}
System.out.println("총 "+sum+"회");
결과
1면 : 143회
2면 : 186회
3면 : 172회
4면 : 171회
5면 : 170회
6면 : 158회
총 1000회